数据表中某字段中存有人员id(empid),如下所示:
id empid
1 4028e4c11e862225011e8aff6446006d
2 4028e4c11e862225011e8aff6446006d,4028e4c11e862225011e8b01f0e4007d,4028e4c11e862225011e8b012ac20079
3 4028e4c11e862225011e8aff6446006d,4028e4c11e862225011e8b01f0e4007d如何通过sql脚本实现如下查询:(主要不清楚将上empid分解)
id empName
1 张三
2 张三,李四,王五
3 张三,李四
id empid
1 4028e4c11e862225011e8aff6446006d
2 4028e4c11e862225011e8aff6446006d,4028e4c11e862225011e8b01f0e4007d,4028e4c11e862225011e8b012ac20079
3 4028e4c11e862225011e8aff6446006d,4028e4c11e862225011e8b01f0e4007d如何通过sql脚本实现如下查询:(主要不清楚将上empid分解)
id empName
1 张三
2 张三,李四,王五
3 张三,李四
http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
ID varchar2(32)
Name varchar2(100)
现有几张记录考情人的表
ID varchar2(32)
empId varchar2(3072) 该字段存放考勤人员的ID
with emps as(
select '4028e4c11e862225011e8aff6446006d' id,'张三' name from dual
union all
select '4028e4c11e862225011e8b01f0e4007d','李四' from dual
union all
select '4028e4c11e862225011e8b012ac20079','王五' from dual
),
chks as(
select 1 id,'4028e4c11e862225011e8aff6446006d' empid from dual
union all
select 2,'4028e4c11e862225011e8aff6446006d,4028e4c11e862225011e8b01f0e4007d,4028e4c11e862225011e8b012ac20079' from dual
union all
select 3,'4028e4c11e862225011e8aff6446006d,4028e4c11e862225011e8b01f0e4007d' from dual
)
select c.id,wm_concat(e.name) empName
from emps e,chks c
where instr(','||c.empid||',',','||e.id||',')>0
group
from emps e,chks c
where instr(','||c.empid||',',','||e.id||',')>0
group by c.id --他好像没复制全
from emps e,chks c
where instr(','||c.empid||',',','||e.id||',')>0
group by c.id --他好像没复制全