📜  如何在 SQL 中将 IN 运算符与子查询一起使用?

📅  最后修改于: 2022-05-13 01:55:35.526000             🧑  作者: Mango

如何在 SQL 中将 IN 运算符与子查询一起使用?

在本文中,我们将看到 IN 运算符与 SQL 中的子查询一起使用。 IN运算符用于将列值与值列表进行比较。值列表是在 SQL 中的 IN 查询之后定义的。

如果我们不知道要比较的确切值列表,我们可以使用查询生成值列表。

句法:

没有子查询:

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

带子查询

SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT statement);

现在,对于演示,请按照以下步骤操作:

第一步:创建数据库

我们可以使用以下命令创建一个名为 geeks 的数据库。

询问:

CREATE DATABASE geeks;

第二步:使用数据库

使用以下 SQL 语句将数据库上下文切换到极客:

USE geeks;

第三步:表定义

我们的极客数据库中有以下 demo_table。 demo_table 有学生的数据,包括他们的年龄和他们获得的成绩。

询问:

CREATE TABLE demo_table(
NAME VARCHAR(20),
AGE int,
GRADE VARCHAR(5));

第 4 步:将数据插入表中

询问:

INSERT INTO demo_table
VALUES ('Romy',22, 'A'),
('Roshini', 20, 'A'),
('Akanksha', 22, 'A'),
('Shalini',23,'B'),
('Sambhavi',21,'A'),
('Meenakshi',22,'C'),
('Nikhil',24,'B'),
('Manu',25,'B'),
('Rohit',24,'C'),
('Astha',23,'A'),
('Samiksha',23,'A');

第五步:查看内容

执行以下查询以查看表的内容

SELECT * FROM demo_table;

输出:

第 6 步:在子查询中使用 In运算符

获取姓名以 R 开头的学生的数据。

询问:

SELECT * FROM demo_table
WHERE NAME IN  
(SELECT NAME FROM demo_table WHERE NAME LIKE 'R%') ;

输出:

获取22岁以上学生的数据。

询问:

SELECT * FROM demo_table
WHERE AGE IN  
(SELECT AGE FROM demo_table WHERE AGE>22) ;

输出: