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:我知道,我的英语是该死的好“:}
这就是我一直在寻找。愚蠢的是我没有提出这样的解决方案。猜猜我还没有学到很多东西。非常感谢! –