0
對於我的一個ETL作業,我需要一個將行轉換爲列的SQL查詢。困難的是,我要參數多少行得到轉換成一列如以下的例子:將行轉換爲ORACLE中的列使用參數化的SQL
ATM我的情況是這樣的:
的Oracle 11g
一欄表:
參數
AB
AE
CF
GH
5G
H3
7P
... ..
SQL查詢:
SELECT listagg (''''
||PARAMETER
||'''', ',') WITHIN GROUP (
ORDER BY ROWNUMBER) AS PARAMETER,
FROM
(SELECT
CASE
WHEN ROWNUM <= 5 THEN 5
WHEN ROWNUM <= 10 THEN 10
WHEN ROWNUM <= 15 THEN 15
WHEN ROWNUM <= 20 THEN 20
WHEN ROWNUM <= 25 THEN 25
END AS ROWNUMBER
PARAMETER
FROM SR0_CRTL_SL_OL_PSM_PARAMETER
)
GROUP BY ROWNUMBER
結果是這樣的:
參數
AB,BG,RT,ZH,JK
AE,HL,GH,DZ,KL
CF,GH ,NM,SD,WE ... ..
我想要的是一個Query tak一個數字,例如。 5 以下結果:
PARAMETER
AB,BG,RT,ZH,JK
AE,HL,GH,DZ,KL
CF,GH, NM,SD,我們 ... ..
或者需要如。 8,其結果將是這樣的:
PARAMETER
AB,BG,RT,ZH,JK,AE,HL,GH
DZ,KL,CF,GH,NM, SD,WE,DE
FG,JK,KL,UZ,IT,FG,HR,TZ ......
我希望你明白我的意思。也許有人可以給我一些幫助。
感謝
PS:我知道,我的英語是該死的好「:}
這就是我一直在尋找。愚蠢的是我沒有提出這樣的解決方案。猜猜我還沒有學到很多東西。非常感謝! –