當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


SQL IN用法及代碼示例


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.


    相關用法


    注:本文由純淨天空篩選整理自owl0223大神的英文原創作品 SQL IN Operator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。