【发布时间】:2011-11-21 14:57:19
【问题描述】:
我有 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 查询来生成上面的最终表。
【问题讨论】:
-
你使用什么数据库?没有可移植的解决方案,SQL 纯粹主义者(我不是其中之一)会告诉你无论如何都不应该在 SQL 中这样做。
-
我正在使用 DB2 数据库。实际上这是 Spring Batch Item Reader 的输入。这要求仅通过选择查询将项目作为单行(将进入 POJO)。
-
如果您使用Oracle或SqlServer或DB2,您可以尝试使用ListAgg()函数。 publib.boulder.ibm.com/infocenter/db2luw/v9r7/…
-
这里看起来是同一个问题:stackoverflow.com/questions/3728010/…
-
我需要可以在 DB2 上运行的查询