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ử BETWEENIS (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 ý: BETWEENNOT 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