1
我试图使用解决方案1中here的以下SQL脚本将阵列转置为单独的行。将阵列转换为Netezza中的行
当我运行它时,它只会检索数组的第一个元素。我想要显示数组的所有元素。昨天,我记得修改了这个脚本的一部分,它似乎运行正常。但是我没有保存脚本!
SELECT F.ROWID
, C.CNT
, SQLEXT..get_value_varchar(ARR,CAST(DECODE(SIGN(LEN-c.CNT),1,c.CNT,null) AS INT)) AS ELEMENT_NM
FROM (SELECT ROWID
, SQLEXT..ARRAY_SPLIT(FINELINE_NM,';') AS ARR
, SQLEXT..ARRAY_COUNT(SQLEXT..ARRAY_SPLIT(FINELINE_NM,';')) AS LEN
FROM DATABASE.DEV_LDG_REPORT
) AS F
CROSS JOIN (SELECT ROW_NUMBER() OVER (ORDER BY 1) AS CNT
FROM (SELECT *
FROM DATABASE.DEV_LDG_REPORT
LIMIT 100) AS V
) AS C
WHERE DECODE(SIGN(LEN-C.CNT),1, C.CNT, NULL) IS NOT NULL
;
从本质上讲,我想这样的:
ID FINELINE_NM
1 123;124;125
2 123;124;125;126
看起来像这样:
ID FINELINE_NM
1 123
1 124
1 125
2 123
2 124
2 125
2 126
是否有在上面的脚本中,你可以看到它允许所有的任何修改要在结果中返回的元素?
欢迎来到StackOverflow!作为提醒,请避免仅仅链接到包含实质性相关细节的外部来源,因为它们可能会改变或在以后被删除。可以包含链接,但可以考虑将与问题相关的任何内容包含在问题本身中。 – STLDeveloper