Schließen Sie den Wert in das Trennzeichen ein, das Sie in der Trennzeichenliste verwenden, und prüfen Sie dann, ob es sich um eine Teilzeichenfolge der Trennzeichenliste handelt (auch mit den umschlossenen Trennzeichen):
SELECT r.Value
FROM AD_Ref_List r
INNER JOIN xx_insert x
ON ( ',' || x.XX_DocAction_Next || ',' LIKE '%,' || r.value || ',%' )
WHERE r.AD_Reference_ID = 1000448
AND x.xx_insert_id = 1000283;
Ich muss die Logik in der WhereClause beibehalten
Wirklich nicht. Die obige Abfrage wird viel effizienter sein.
Aber wenn es sein muss:
SELECT Value
FROM AD_Ref_List
WHERE AD_Reference_ID = 1000448
AND value IN (
SELECT REGEXP_SUBSTR( XX_DocAction_Next, '[^,]+', 1, LEVEL )
FROM xx_insert
WHERE xx_insert_id = 1000283
CONNECT BY LEVEL <= REGEXP_COUNT( XX_DocAction_Next, '[^,]+' )
);