Source Table: EMP_LOCATION
NAME LOCATION
-------------------------------
SMITH NY;CA;IL;GA
JAMES MO;AZ;RI
FORD NJ
SCOTT TX;VA;WA;NH
MARTIN MD;CT
Required Output:
NAME LOCATION
-------------------
FORD NJ
JAMES AZ
JAMES MO
JAMES RI
MARTIN CT
MARTIN MD
SCOTT NH
SCOTT TX
SCOTT VA
SCOTT WA
SMITH CA
SMITH GA
SMITH IL
SMITH NY
0
A
ответ
1
Некоторые люди попросят вас показать какой-то код, но когда мне это нужно, я потратил много времени на создание функции, тогда я понял, что могу сделать это с помощью connect by
. Так что вам нужно это:
SELECT name, REGEXP_SUBSTR (location, '[^;]+', 1, LEVEL) AS location
FROM emp_location
CONNECT BY
LEVEL <= LENGTH(REGEXP_REPLACE (location, '[^;]*')) + 1
GROUP BY name, REGEXP_SUBSTR (location, '[^;]+', 1, LEVEL)
ORDER BY name
вы что-то пробовали? – tbone
Это непростая задача. для стартера. –
Да, на самом деле я написал в sql server db. – Nabin