Cú pháp IN - trong mệnh đề where
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.
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,
Cú pháp cho toán tử IN trong một cấu trúc truy vấn con như sau:
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,
FROM Store_Information
WHERE Store_Name IN ('Los Angeles', 'San Diego');
Kết quả:
Store_Name | Sales | Txn_Date |
Los Angeles | 1500 | Jan-05-1999 |
San Diego | 250 | Jan-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:
- DELETE FROM - Xóa dòng trong SQL
- UPDATE - cú pháp cập nhật dữ liệu
- INSERT INTO SELECT - Insert dữ liệu từ câu lệnh select
- INSERT INTO - cú pháp thêm dữ liệu
- SELECT UNIQUE - Select loại bỏ trùng
- SQL AS - Gán bí danh cho bảng