我有2个表emp和emp_desc
emp表包含empid
,empname
,eempaddress
emp_desc表包含empid
,empdescseqno
,empdesc
列(对于一个empid,我们有多个empdesc - 它不是固定的)
表1
empid ename eaddress
1 ABS PPPPPP
2 DSC CCCCC
表2
empid empdescseqno empdesc
1 1 JJJJJ
1 2 KKKKKK
1 3 LLLLLL
2 1 MMMMMM
2 2 NNNNNN
我想检索empid,empname和empdesc加入这两个表。但是,在结果表中,对应于一个员工的所有empdesc应该连接在一个字符串中。
也就是说,结果应如下所示:
empid empname empdesc
1 ABS JJJJJ KKKKKK LLLLLL
2 DSC MMMMMM NNNNNN
我需要编写一个通用的SELECT查询,从而得到上面的最终表格。
答案 0 :(得分:0)
如果您正在使用MYSQL数据库,那么您可以使用此查询。
SELECT empid, ename, GROUP_CONCAT(empdesc ORDER BY empdescseqno SEPARATOR ' ') as empdesc FROM employee emp
INNER JOIN employee_map emp_map ON emp.empid = emp_map.empid
GROUP BY emp.empid;
这将根据需要提供结果。
我认为你想要DB2,然后你需要在DB2中找到替代函数
答案 1 :(得分:0)
将Mayank的答案复制到评论
中select e.empid, substr( xmlserialize( xmlagg( xmltext( concat( ', ', empdesc ) ) ) as varchar( 1024 ) ), 3 ) from empdesc desc , emp e where e.empid =desc.empid group by e.empid
感谢Dan指出旧链接。