Cú pháp IN - trong mệnh đề where

2022-11-02 13:51:51

Toán tử IN trong SQL lọc tập kết quả dựa trên danh sách các giá trị rời rạc. Danh sách các giá trị rời rạc có thể được liệt kê đơn giản hoặc được cung cấp bởi một câu lệnh SELECT riêng (đây được gọi là truy vấn con ).

The IN operator is always used with the WHERE clause.

Syntax

Dưới đây là cú pháp cho toán tử IN khi các giá trị có thể được liệt kê trực tiếp.

SELECT "column_name"
FROM "table_name"
WHERE "column_name" IN ('value1', 'value2', ...);

Số lượng giá trị trong ngoặc đơn có thể là một hoặc nhiều, với mỗi giá trị được phân tách bằng dấu phẩy. Giá trị có thể là ký tự số hoặc chuỗi. Nếu chỉ có một giá trị bên trong dấu ngoặc đơn, phần thưởng này tương đương với,

WHERE "column_name" = 'value1'

Cú pháp cho toán tử IN trong một cấu trúc truy vấn con như sau:

SELECT "column_name"
FROM "table_name"
WHERE "column_name" IN ( [SELECT STATEMENT] );

Trong cấu trúc trên, câu lệnh truy vấn con phải chỉ lấy một cột, vì các giá trị trả về từ cột đó là những gì sẽ được sử dụng để lọc kết quả. Nếu hai hoặc nhiều cột được chọn trong truy vấn con, sẽ xảy ra lỗi.

Xin lưu ý rằng toán tử IN không thể được sử dụng nếu tiêu chí lọc là một phạm vi liên tục. Ví dụ: nếu chúng ta đang tìm kiếm bất kỳ giá trị nào nằm trong khoảng từ 0 đến 1, chúng ta không thể sử dụng toán tử IN vì không thể liệt kê mọi giá trị có thể có trong khoảng từ 0 đến 1.

Ví dụ

Chúng tôi sử dụng bảng sau cho ví dụ của chúng tôi.

Table Store_Information

 Store_Name  Sales  Txn_Date 
 Los Angeles  1500  Jan-05-1999 
 San Diego  250  Jan-07-1999 
 San Francisco  300  Jan-08-1999 
 Boston  700  Jan-08-1999 

Để chọn tất cả các bản ghi cho các cửa hàng Los Angeles và San Diego trong Table Store_Information , chúng tôi nhập,

SELECT *
FROM Store_Information
WHERE Store_Name IN ('Los Angeles', 'San Diego');

Kết quả:

Store_NameSalesTxn_Date
Los Angeles1500Jan-05-1999
San Diego250Jan-07-1999

Để biết ví dụ về toán tử IN được sử dụng cùng với một câu lệnh SELECT riêng, vui lòng xem phần Truy vấn con.

Bài tập

Đối với các bài tập này, giả sử chúng ta có một bảng được gọi là Người dùng với dữ liệu sau:

Người dùng bảng

 First_Name  Last_Name  Birth_Date  Gender  Join_Date 
 Sophie  Lee  Jan-05-1960  F  Apr-05-2015 
 Richard  Brown  Jan-07-1975  M  Apr-05-2015 
 Jamal  Santo  Oct-08-1983  M  Apr-09-2015 
 Casey  Healy  Sep-20-1969  M  Apr-09-2015 
 Jill  Wilkes  Nov-20-1979  F  Apr-15-2015 

1. Câu lệnh SQL nào sau đây là hợp lệ? (Có thể có nhiều hơn một câu trả lời)
a) SELECT Gender FROM Users IN ('M');
b) SELECT * FROM Users HAVING Gender IN ('M','F');
c) SELECT First_Name, Last_Name FROM Users WHERE Gender IN ('M','F');
d) SELECT DISTINCT First_Name, Last_Name WHERE Gender IN ('M','F');

2. How many records will be returned by the following query?
SELECT * FROM Users WHERE Join_Date IN ('Apr-05-2015','Apr-15-2015');

3. Có bao nhiêu bản ghi sẽ được trả về bởi truy vấn sau?
SELET * TỪ Người dùng TẠI ĐÂU Giới tính ('M') AND Join_Date = 'Apr-15-2015');



Xem thêm:


Chia sẻ: