Bạn có một parameter chứa chuỗi IDs của một số bản ghi mà bạn truyền vào Procedure hay Function, ví dụ: "2,4,8,11,15".
Bạn muốn đưa vào điều kiện WHERE IN để lấy các bản ghi thỏa mãn điều kiện, tuy nhiên nếu để cả chuỗi như thế thì kết quả so sánh không chính xác.
Có nhiều cách để bạn làm được điều đó. Dưới đây là một cách:
Giả sử biến param là ids = "2,4,8,11,15";
WHERE ID IN (select regexp_substr(ids ,'[^,]+', 1, level) from dual connect by regexp_substr(ids , '[^,]+', 1, level) is not null)Bạn thử ghép vào câu lệnh Select của bạn xem đúng ko nhé. :)
0 nhận xét:
Đăng nhận xét