Я пытаюсь использовать следующий SQL-скрипт, адаптированный из here в решении 1, для переноса массивов в отдельные строки.Переместить массив в строки в 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