Trong SQLite, iif()
là một hàm có điều kiện trả về đối số thứ hai hoặc thứ ba dựa trên đánh giá của đối số đầu tiên.
Về mặt logic, nó tương đương với CASE WHEN X THEN Y ELSE Z END
.
iif()
là chữ viết tắt của IF ngay lập tức .
iif()
chức năng được giới thiệu trong SQLite 3.32.0, được phát hành vào ngày 22 tháng 5 năm 2020.
Cú pháp
Cú pháp như sau:
iif(X,Y,Z)
Ở đâu:
- X là biểu thức được đánh giá.
- Y xác định những gì được trả lại nếu đánh giá của X trả về true.
- Z xác định những gì được trả lại nếu đánh giá của X trả về false.
Một cách khác để nghĩ về nó là như thế này:
iif(expr, truepart, falsepart)
Ví dụ
Dưới đây là một ví dụ cơ bản để chứng minh cách iif()
hoạt động.
SELECT iif( 1 < 2, "True", "False" );
Kết quả:
True
Trong trường hợp này, biểu thức cần đánh giá là 1 < 2
. Đúng là 1 nhỏ hơn 2 nên đối số thứ hai được trả về.
Điều này tương đương với việc làm như sau.
SELECT
CASE WHEN 1 < 2 THEN "True"
ELSE "False"
END;
Kết quả:
True
Trong những ví dụ này, tôi đã sử dụng các từ “Đúng” và “Sai” nhưng tôi có thể sử dụng bất cứ thứ gì.
Ví dụ, tôi có thể đã làm điều này thay thế:
SELECT iif( 1 < 2, "Fail", "Pass" );
Kết quả:
Fail
Hoặc nó có thể bị loại bỏ hoàn toàn khỏi câu trả lời kiểu nhị phân “true” hoặc “false”.
Ví dụ:
SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" );
Kết quả:
Sticky Rice
Ví dụ về cơ sở dữ liệu
Dưới đây là một ví dụ sử dụng các cột từ cơ sở dữ liệu.
SELECT
ProductName,
Qty,
iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products;
Kết quả:
ProductName Qty Notes ----------- ---------- ---------------- Hammer 10 Sufficient stock Saw 5 Order more Wrench 7 Order more Chisel 9 Order more Bandage 70 Sufficient stock