Di seguito un semplice esempio per effettuare lo split di una string utilizzando una regexp.
Supponiamo di avere la seguente stringa:
'COSENZA,MILANO,ROMA,TORINO,NAPOLI'
quello che vogliamo ottenere è una lista :
COSENZA
MILANO
ROMA
TORINO
NAPOLI
Per ottenere questo basta effettuare la seguente query:
SELECT
regexp_substr('COSENZA,MILANO,ROMA,TORINO,NAPOLI', '[^,]+', 1, level)
FROM
dual
CONNECT BY
regexp_substr('COSENZA,MILANO,ROMA,TORINO,NAPOLI', '[^,]+', 1, level) IS NOT NULL;
Il risultato ottenuto sarà il seguente:
REGEXP_SUBSTR('COSENZA,MILANO,ROM
---------------------------------
COSENZA
MILANO
ROMA
TORINO
NAPOLI
Se lo si vuole usare come input in una IN basta riscrivere la query nel seguente modo:
SELECT * FROM CITTA WHERE NAME IN
(SELECT regexp_substr('COSENZA,MILANO,ROMA,TORINO,NAPOLI', '[^,]+', 1, level)
FROM dual
CONNECT BY regexp_substr('COSENZA,MILANO,ROMA,TORINO,NAPOLI', '[^,]+', 1, level) IS NOT NULL);
Nessun commento:
Posta un commento