Chương 3. BIỂU THỨC
3.1. CASE
CASE thực hiện việc thêm giá trị cho một cột mới dựa trên điều kiện.
a) Cú pháp:
b) Ví dụ:
Thêm giá trị theo điều kiện của cột i:
-- i[1,2,3]
SELECT i, CASE WHEN i > 2 THEN 1 ELSE 0 END AS test
FROM integers;
i | test |
1 | 0 |
2 | 0 |
3 | 1 |
Phần WHEN THEN của biểu thức điều kiện CASE có thể được nối tiếp, bất cứ khi nào bất kỳ điều kiện nào trả về giá trị true cho một bộ đơn lẻ, biểu thức tương ứng sẽ được đánh giá và trả về.
SELECT i, CASE WHEN i = 1 THEN 10 WHEN i = 2 THEN 20 ELSE 0 END AS test
FROM integers;
i | test |
1 | 10 |
2 | 20 |
3 | 0 |
3.2. So sánh
Toán tử so sánh:
SQL_Lab cung cấp 6 toán tử so sánh tiêu chuẩn. Bất cứ khi nào một trong hai đối số đầu vào là NULL thì đầu ra của phép so sánh là NULL.
Cú pháp:
Toán tử so sánh:
Toán tử |
Mô tả |
Ví dụ |
Kết quả |
< |
Bé hơn |
2 < 3 |
True |
> |
Lớn hơn |
2 > 3 |
False |
<= |
Bé hơn hoặc bằng |
2 <= 3 |
True |
>= |
Lớn hơn hoặc bằng |
4 >= Null |
Null |
= |
Bằng |
Null = Null |
Null |
< > hoặc |
Không bằng |
2 < > 2 |
False |
BEETWEEN và IS [NOT] NULL
Bên cạnh các toán tử so sánh chuẩn, còn có các toán tử BETWEEN và IS (NOT) NULL. Các toán tử này hoạt động rất giống các toán tử, nhưng có cú pháp đặc biệt theo chuẩn SQL. Chúng được hiển thị trong bảng bên dưới.
Cú pháp:
BEETWEEN và IS [NOT] NULL
Thuộc tính |
Mô tả |
a BETWEEN x AND y |
x < a và a < y |
a NOT BETWEEN x AND y |
x > a và a > y |
IS NULL |
true nếu biểu thức NULL, false nếu ngược lại |
IS NOT NULL |
false nếu biểu thức NULL, true nếu ngược lại |
Lưu ý: BETWEEN và NOT BETWEEN chỉ tương đương với các ví dụ bên dưới trong trường hợp cả a, x và y đều cùng kiểu, vì BETWEEN sẽ ép kiểu tất cả các đầu vào của nó thành cùng kiểu.
3.3. Toán tử IN
a) Cú pháp
b) Toán tử
IN
Toán tử IN kiểm tra sự chứa đựng của biểu thức bên trái bên trong tập hợp các biểu thức ở phía bên phải (P). Toán tử IN trả về true nếu biểu thức có trong P, false nếu biểu thức không có trong P và P không có giá trị NULL hoặc NULL nếu biểu thức không có trong P và P có giá trị NULL.
SELECT 'Toán' IN ('Toán', 'Văn');
-- true
SELECT 'Toán' IN ('Văn', 'Anh');
-- false
SELECT 'Toán' IN ('Văn', Toán', NULL);
-- true
SELECT 'Toán' IN ('Văn', 'Anh', NULL);
-- NULL
NOT IN
NOT IN có thể được sử dụng để kiểm tra xem một phần tử có tồn tại trong tập hợp hay không. x NOT IN y tương đương với NOT(x IN y)
3.4. Toán tử logic
a) Cú pháp:
b) Toán từ:
Toán tử nhị phân:
a |
b |
a AND b |
a OR b |
true |
true |
true |
True |
true |
false |
false |
false |
true |
NULL |
NULL |
true |
false |
false |
false |
false |
false |
NULL |
false |
NULL |
NULL |
NULL |
NULL |
NULL |
Lưu ý: Các toán tử logic liên quan đến NULL không phải lúc nào cũng có giá trị là NULL.
Ví dụ: NULL AND false sẽ đánh giá là sai và NULL OR true sẽ đánh giá là đúng. Dưới đây là các bảng sự thật đầy đủ.
Toán tử một ngôi:
a |
NOT a |
true |
false |
false |
true |
NULL |
NULL |