Bọc giá trị trong dấu phân cách bạn đang sử dụng trong danh sách được phân tách và sau đó kiểm tra xem nó có phải là một chuỗi con của danh sách được phân tách hay không (cũng với các dấu phân cách được bao quanh nó):
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;
tôi phải giữ logic trong đó Điều khoản
Thực sự, không. Truy vấn trên sẽ hiệu quả hơn nhiều.
Nhưng nếu bạn phải sau đó:
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, '[^,]+' )
);