06/04/2021, 14:51

ìm hiểu IN và NOT IN trong Oracle - Oracle căn bản

Trong bài này chúng ta sẽ tìm hiểu một lệnh dùng để kiểm tra điều kiện đó là WHERE IN, lệnh này dùng để kiểm tra một giá trị có nằm trong một danh sách hay không. Lệnh IN có hai cách dùng, thứ nhất là IN và thứ hai là NOT IN, với IN thì kiểm tra giá trị có xuất hiện trong danh sách hay không và ...

Trong bài này chúng ta sẽ tìm hiểu một lệnh dùng để kiểm tra điều kiện đó là WHERE IN, lệnh này dùng để kiểm tra một giá trị có nằm trong một danh sách hay không.

Lệnh IN có hai cách dùng, thứ nhất là IN và thứ hai là NOT IN, với IN thì kiểm tra giá trị có xuất hiện trong danh sách hay không và NOT IN thì kiểm tra không xuất hiện trong danh sách.

1. Lệnh WHERE IN trong Oracle

IN dịch tiếng Việt có nghĩa là bên trong, như vậy nó sẽ kiểm tra một giá trị có nằm bên trong một tập hợp các giá trị hay không, nếu đúng thì trả về TRUE, ngược lại trả về FALSE.

Cú pháp
SELECT column_name1
FROM table_name
WHERE column_name2 IN (value1, value2, value3, ...)

Trong đó:

  • table_name là bảng cần truy vấn
  • column_name1 là các columns sẽ được trả về
  • column_name2 là column cần so sánh với tập hợp các giá trị (value1, value2, value3, ...)

Ví dụ: Chọn tất cả khách hàng đang sống tại ĐăkLăk, ĐăkNông, Gia Lai

SELECT *
FROM customers
WHERE province IN ("ÐakLak", "ÐakNông", "Gia La"i)

2. Lệnh WHERE NOT IN trong Oracle

WHERE NOT IN thì ngược lại với WHERE IN, có nghĩa là nó sẽ kiểm tra một giá trị có phải không tồn tại bên trong một tập hợp gái trị hay không, nếu đúng thì trả về TRUE, ngược lại trả về FALSE.

Cú pháp
SELECT column_name1
FROM table_name
WHERE column_name2 NOT IN (value1, value2, value3, ...)

Giải thích các tham số thì giống như trên.

Ví dụ: Chọn tất cả các khách hàng với điều kiện là không được sống tại ĐăkLăk, ĐăkNông, Gia Lai.

SELECT *
FROM customers
WHERE province NOT IN ("ÐakLak", "ÐakNông", "Gia Lai")

Lưu ý: Tập hợp giá trị trong IN có thể là chuỗi hoặc số. Nếu la chuỗi thì bạn phải bao quanh nó bởi cặp dấu nháy, còn là số thì không cần.

3. Sử dụng OR và AND thay thế IN và NOT IN

Dưới đây là một ví dụ sử dụng toán tử AND để thay thế IN và NOT IN. Để đơn giản thì mình sẽ sử dụng 2 ví dụ ở trên luôn nhé.

Sử dụng OR thay thế IN
SELECT *
FROM customers
WHERE 
	province = "ÐakLak"
	OR
	province = "ÐakNông"
	OR
	province = "Gia Lai"

Sử dụng AND thay thế NOT IN
SELECT *
FROM customers
WHERE 
	province != "ÐakLak"
	AND
	province != "ÐakNông"
	AND
	province != "Gia Lai"

4. Lời kết

Như vậy là mình đã giới thiệu xong cách sử dụng IN và NOT IN trong Oracle, đây là lệnh rất hay và được sử dụng khá thường xuyên, mặc dù có thể thay thế nó với toán tử AND. Bài này kế thúc tại đây, hẹn gặp lại các bạn bài kế tiếp.

Trần Trung Dũng

15 chủ đề

2610 bài viết

Cùng chủ đề
0