У меня есть таблица с именем «Таблица» и атрибут с именем «История».Этот атрибут истории имеет следующие значения:
1 Finished (30-05-2018);
2 InProgress (25-05-2018); Rejected(26-05-2018); InProgress (28-05-2018); Finished (30-05-2018);
3 InProgress (25-05-2018); Finished (30-05-2018);
Я хочу разделить этот атрибут точкой с запятой (;) и создать новую строку для каждой части истории.Таким образом, для строк в приведенном выше коде / примере следует создать 7 строк.Мне удалось сделать это за одну строку с помощью кода ниже.Проблема в том, что я хочу сделать это для каждой строки в этой таблице.Здесь возникает проблема: когда я удаляю условие WHERE в WITH, я получаю путь ко многим результатам и множеству значений NULL.Что я делаю неправильно?
WITH DATA AS
( SELECT "WorkID" w,"History" his FROM Table
where "WorkID" = 75671
)
SELECT w, trim(regexp_substr(his, '[^;]+', 1, LEVEL)) his
FROM DATA
CONNECT BY regexp_substr(his , '[^;]+', 1, LEVEL) IS NOT NULL