如何在 SQL 中使用带子查询的 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);
现在,按照以下步骤进行演示:
步骤 1: 创建数据库
我们可以使用以下命令创建一个名为 geeks 的数据库。
查询:
CREATE DATABASE geeks;
步骤 2: 使用数据库
使用下面的 SQL 语句将数据库上下文切换到极客:
USE geeks;
步骤 3: 表格定义
我们的极客数据库中有以下演示表。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) ;
输出:
版权属于:月萌API www.moonapi.com,转载请注明出处