SQL IN 運算符根據特定值列表過濾數據。一般來說,我們隻能使用一個條件WHEN 子句,但是 IN 運算符允許我們指定多個值。
在這篇文章中,我們將了解SQL 中的 IN 運算符通過理解其語法和示例。
IN 運算符
SQL 中的 IN 運算符用於指定多個值/sub-queriesWHERE 條款。它提供了一種簡單的方法來處理多個OR 狀況。
我們隻在 WHERE 子句中傳遞單個條件,但是有時我們需要根據多個條件選擇數據。對於這種情況,使用 IN 運算符。
Note: If any of the conditions are passed using the IN operator, they will be considered true
SQL IN 語法
IN 運算符的語法如下:
SELECT column_name FROM table_name
WHERE condition IN (condition_value1, condition_value2 …..);
在這裏,我們選擇列column_name 從表中table_name 在所有條件中檢查條件condition_values通過了IN 運算符.
演示 SQL 數據庫
我們將在下麵的示例中使用以下 SQL 表:
名稱 | 名稱 | 社會保障號 | 日期 | 地址 | 性別 | 薪水 |
---|---|---|---|---|---|---|
Chiranjeev | Singh | 1 | 2002-07-31 | Delhi | M | 1111789.00 |
Harry | Stark | 2 | 1990-07-31 | Delhi | M | 3333.00 |
Meghna | Gururaani | 5 | 2002-04-04 | Almora | F | 3433.00 |
Aniket | Bhardwaj | 6 | 2001-05-05 | Ponta | M | 56564.00 |
Vritti | Goel | 7 | 2002-03-05 | Delhi | F | 7565.00 |
Aashish | Kumar | 8 | 2002-08-04 | Himachal | M | 44657.00 |
Siddharth | Chaturvedi | 9 | 2003-11-10 | Lucknow | M | 244322.00 |
您可以使用這些查詢創建下表:
CREATE TABLE Employee (
Fname VARCHAR(50),
Lname VARCHAR(50),
Ssn INT,
Bdate DATE,
Address VARCHAR(100),
Sex CHAR(1),
Salary DECIMAL(10, 2)
);
INSERT INTO Employee (Fname, Lname, Ssn, Bdate, Address, Sex, Salary) VALUES
('Chiranjeev', 'Singh', 1, '2002-07-31', 'Delhi', 'M', 1111789.00),
('Harry', 'Stark', 2, '1990-07-31', 'Delhi', 'M', 3333.00),
('Meghna', 'Gururaani', 5, '2002-04-04', 'Almora', 'F', 3433.00),
('Aniket', 'Bhardwaj', 6, '2001-05-05', 'Ponta', 'M', 56564.00),
('Vritti', 'Goel', 7, '2002-03-05', 'Delhi', 'F', 7565.00),
('Aashish', 'Kumar', 8, '2002-08-04', 'Himachal', 'M', 44657.00),
('Siddharth', 'Chaturvedi', 9, '2003-11-10', 'Lucknow', 'M', 244322.00);
SQL IN 運算符示例
讓我們看一下 SQL 中 IN 運算符的一些示例並了解其工作原理。
示例 1:
SQL 查詢獲取地址在 Delhi 和喜馬偕爾邦的員工的 Fname 和 Lname
詢問:
SELECT Fname, Lname FROM employee WHERE Address IN ('Delhi','Himachal');
輸出:
名稱 | 名稱 |
---|---|
Chiranjeev | Singh |
Harry | Stark |
Vritti | Goel |
Aashish | Kumar |
在此查詢中,我們獲取了地址為 Delhi 或 Himachal 的所有員工的 Fname 和 Lname。為此,我們使用 IN 運算符將這些值傳遞給 WHERE 子句。
示例 2:SQL IN 和 NOT IN 運算符
我們可以使用SQL IN 與NOT從我們的結果中排除指定的數據。
詢問:
SELECT Fname FROM employee WHERE Address NOT IN ('Delhi', 'Lucknow');
輸出:
名稱 |
---|
Meghna |
Aniket |
Aashish |
在這裏,我們創建了一個查詢來獲取地址既不是 Delhi 也不是勒克瑙的所有員工的 Fname。我們使用 NOT 運算符和 IN 來排除這些值。
示例 3:
我們使用了具有顯式條件值的 IN 運算符。但是,我們可以使用 IN 運算符從另一個查詢中選擇條件值。為了演示這一點,我們將使用數據庫中的另一個表 manager。表的內容如下所示。
社會保障號 | 部門 |
---|---|
5 | Sales |
1 | Technical |
現在,我們將編寫一個查詢來獲取所有擔任經理的員工的詳細信息。這可以通過使用帶有 IN 運算符的嵌套 SELCT 查詢來完成。
詢問:
SELECT * FROM employee WHERE Ssn IN (SELECT Ssn FROM manager);
輸出:
名稱 | 名稱 | 社會保障號 | 日期 | 地址 | 性別 | 薪水 |
---|---|---|---|---|---|---|
Chiranjeev | Singh | 1 | 2002-07-31 | Delhi | M | 1111789.00 |
Meghna | Gururaani | 5 | 2002-04-04 | Almora | F | 3433.00 |
在這裏,我們從經理表中選擇了所有經理的 Ssn,然後,我們將此查詢的結果傳遞給 IN 運算符中的主查詢,該查詢將獲取具有與從經理表中獲取的相同 Ssn 的所有員工的詳細信息。嵌套查詢。
有關 SQL IN 運算符的要點:
- The SQL IN operator allows you to specify multiple values in a WHERE clause.
- It checks if a specified value matches any value in a list.
- It simplifies querying for records that match multiple criteria without needing to use multiple OR conditions.
- The syntax is straightforward:
WHERE column_name IN (value1, value2, ...)
.- It is commonly used with SELECT, INSERT, UPDATE, and DELETE statements for filtering or updating data based on multiple values.
- Using the IN operator can make SQL queries more concise and readable.
相關用法
- SQL IS NOT NULL用法及代碼示例
- SQL IS NULL用法及代碼示例
- SQL Datetime轉Date用法及代碼示例
- SQL Date轉Datetime用法及代碼示例
- SQL NUMERIC轉NVARCHAR用法及代碼示例
- SQL LTRIM()用法及代碼示例
- SQL UPPER()用法及代碼示例
- SQL RTRIM()用法及代碼示例
- SQL FLOAT轉NVARCHAR用法及代碼示例
- SQL Datetime轉Epoch用法及代碼示例
- SQL Epoch Time轉Date用法及代碼示例
- SQL Datetime轉String用法及代碼示例
- SQL VARCHAR轉INT用法及代碼示例
- SQL NOT用法及代碼示例
- SQL NOT EQUAL用法及代碼示例
- SQL LIKE用法及代碼示例
- SQL DROP和TRUNCATE的區別用法及代碼示例
- SQL Server CHARINDEX()用法及代碼示例
- SQL Server DIFFERENCE()用法及代碼示例
- SQL Server IIF()用法及代碼示例
- SQL Server ASCII()用法及代碼示例
- SQL Server LOG()用法及代碼示例
- SQL Server LOG10()用法及代碼示例
- SQL Server ATN2()用法及代碼示例
注:本文由純淨天空篩選整理自owl0223大神的英文原創作品 SQL IN Operator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。