Tìm hiểu IN và NOT IN trong Oracle
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.
SELECT column_name1 FROM table_name WHERE column_name2 IN (value1, value2, value3, ...)
Trong đó:
Bài viết này được đăng tại [free tuts .net]
- 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.
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é.
SELECT * FROM customers WHERE province = "ÐakLak" OR province = "ÐakNông" OR province = "Gia Lai"
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.