Chuyển tới nội dung
Trang chủ » Toán tử IN và NOT IN trong SQL

Toán tử IN và NOT IN trong SQL

Trong bài này chúng ta sẽ học hai lệnh mới dùng để kiểm tra một giá trị có nằm trong một dãy giá trị khác hay không và đó chính là lệnh IN và NOT IN trong SQL.

1. Lệnh IN trong SQL

IN dịch ra tiếng Anh có nghĩa là “trong“, và ý nghĩa của nó trong SQL là kiểm tra có nằm trong một dãy giá trị hay không. Ví dụ kiểm tra địa chỉ có nằm trong 3 tỉnh: Đăklăk, ĐăkNông, Gia lai hay không thì ta có thể sử dụng IN. Cú pháp như sau:

Cú pháp
SELECT columns_list
FROM table_name
WHERE column_name IN (list_value);

Trong đó list_value là tập các giá trị được cách nhau bởi dấu phẩy.

Với ví dụ trên thì ta có thể viết như sau:

SELECT *
FROM table_name
WHERE address IN ("Daklak", "DakNong", "Gia Lai");

Ví dụ: kiểm tra điểm của giáo viên chấm có nằm trong khoảng từ 0 đến 10 hay không, nếu khác tức là giáo viên chấm sai.

SELECT *
FROM exams
WHERE score IN (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

Để chuyển đổi lệnh IN sang cú pháp thông thường thì ta sử dụng toán tử OR.

SELECT *
FROM exams
WHERE 
	score = 0
	OR score = 1
	OR score = 2
	OR score = 3
	OR score = 4
	OR score = 5
	OR score = 6
	OR score = 7
	OR score = 8
	OR score = 9
	OR score = 10

2. Lệnh NOT IN trong SQL

Trong SQL thì lệnh NOT IN sẽ phủ định lại lệnh IN, nghĩa nếu lệnh IN kiểm tra có nằm trong tập giá trị hay không thì lệnh NOT IN lại kiểm tra không nằm trong tập giá trị. Ví dụ kiểm tra địa chỉ của khách hàng có phải không nằm trong ba tỉnh ĐăkLăk, ĐăkNông, Gia Lai.

Cú pháp NOT IN như sau:

SELECT columns_list
FROM table_name
WHERE column_name NOT IN (list_value);

Ví dụ: Lấy danh sách khách hàng nhưng không được lấy khách hàng đang sống tại Hà Nội và Hải Phòng.

SELECT * FROM customers
WHERE address NOT IN ("Ha Noi", "Hai Phong")

Để chuyển thành toán tử khác thì bạn sử dụng AND, với ví dụ này thì mình code lại như sau:

SELECT * FROM customers
WHERE address != "Ha Noi"
	AND address != "Hai Phong";

Như vậy là mình đã giới thiệu xong cách sử dụng toán tử IN và NOT IN trong T-SQL, hẹn gặp lại các bạn ở bài tiếp theo trong chuỗi series tự học SQL nhé.

Trả lời

Email của bạn sẽ không được hiển thị công khai.