Mẹo #2: Oracle - Lấy các bản ghi thỏa mãn điều kiện trong 1 chuỗi phân tách ký tự

Kết quả hình ảnh cho tip and trick programming image
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é. :)
Share on Google Plus

About Practice makes perfect

Chia sẻ cũng là một cách để học được nhiều hơn.
Có công mài sắt có ngày nên kim - Practice makes perfect
    Blogger Comment

0 nhận xét:

Đăng nhận xét