2016-11-11 77 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