Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Übergeben einer Zeichenfolge mit Trennzeichen in der NOT IN-Klausel

Sie können regexp_substr für dieses Problem verwenden:

SELECT * FROM (
SELECT 'JACK' AS VALUE FROM DUAL
UNION
SELECT 'JOHN' AS VALUE FROM DUAL
UNION
SELECT 'BOB' AS VALUE FROM DUAL
)
WHERE VALUE NOT IN (SELECT regexp_substr('BOB,JOHN','[^,]+', 1, LEVEL) FROM dual CONNECT BY regexp_substr('BOB,JOHN', '[^,]+', 1, LEVEL) IS NOT NULL)