如何在 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) ;
输出: