当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。