2016-11-11 36 views
0

我想在一个选择来填充值的虚拟场在for循环中:DB2:在for循环填充空字段值,而选择

Somethinhg像(表帐户比如有一个字段“登录” )

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

列表中的结果应该是

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

有人请帮助我,如果这是可能的!

非常感谢!

+0

创建一个UDF(用户定义的函数),您可以在'SELECT'列表中调用该函数。 – mustaccio

回答

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