DB2:使用for循环中的值填充虚拟字段,同时选择

时间:2016-11-11 16:56:50

标签: sql db2

我想在选择期间用for循环填充虚拟字段中的值:

Somethinhg like(表帐户,例如有一个字段“登录”)

选择登录,(对于i = 1到3 {list = list.login.i。“,”})作为帐户列表

结果应为

login |  list
aaa  |   aaa1,aaa2,aaa3
bbb  |   bbb1,bbb2,bbb3
ccc  |   ccc1,ccc2,ccc3

如果有可能请有人帮助我!!!!

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果这是一次性任务并且您的循环大小已修复,您可以组成一个整数表,并使用包含login列的表格执行笛卡尔积:

SELECT ACC.LOGIN || NUMBRS.NUM FROM
ACCOUNT ACC, TABLE (
 SELECT '1' AS NUM FROM SYSIBM.SYSDUMMY1 UNION
 SELECT '2' AS NUM FROM SYSIBM.SYSDUMMY1 UNION
 SELECT '3' AS NUM FROM SYSIBM.SYSDUMMY1
) NUMBRS

它会为你提供像'aaa1','aaa2','aaa3'这样的字符串每行一个字符串。然后,您可以使用LISTAGG汇总这些字符串。

如果大小不固定,您可以随时组成一个临时表并用适当的数据填充它,而不是使用上面的NUMBRS表。