📜  如何在 SQL Server 中选择匹配列表中所有项目的行组?

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

如何在 SQL Server 中选择匹配列表中所有项目的行组?

在本文中,我们将看到,如何选择一组与 SQL Server 列表中的所有项目匹配的行。

我们可以通过两种方法执行上述函数。那些是:

  • 通过使用 IN运算符
  • 通过使用 STRING_SPLIT 方法执行 JOIN

IN运算符:它允许您在 WHERE 子句中指定值列表。

STRING_SPLIT() :此函数可用于使用指定的分隔符拆分字符表达式,如逗号(',')等。

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

第一步:创建数据库

可以使用 CREATE 命令创建数据库。

询问:

CREATE DATABASE geeks;

第 2 步:使用数据库

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

询问:

USE geeks;

第三步:表定义

我们的极客数据库中有以下 demo_table。

询问:

CREATE TABLE demo_table(
NAME VARCHAR(20),
AGE INT,
CITY VARCHAR(20) );

第 4 步:将数据插入表中

询问:

INSERT INTO demo_table VALUES
('ROMY KUMARI', 22, 'NEW DELHI'),
('PUSHKAR JHA',23, 'NEW DELHI'),
('RINKLE ARORA',23, 'PUNJAB'),
('AKASH GUPTA', 23, 'UTTAR PRADESH'),
('AKANKSHA GUPTA',22, 'PUNJAB'),
('SUJATA JHA', 30,'PATNA')
('PREETI GIRI', 26,'BANGLORE'),
('PREM GUPTA',31,'PUNE');

第五步:查看表的数据

询问:

SELECT * FROM demo_table;

输出:

第 6 步:选择与列表中的项目匹配的一组行。

出于演示的目的,假设我们有一个包含以下项目的列表:(21, 45, 23, 31)。我们将选择 AGE 列中的值与列表中的项目匹配的行组。

方法一:使用 IN运算符

句法:

SELECT *FROM table_name WHERE column_name IN (list);

询问:

SELECT * FROM demo_table WHERE AGE IN (21, 45, 23, 31);

输出:

方法 2:使用 STRING_SPLIT()函数执行 JOIN

句法:

SELECT * FROM table_name
JOIN STRING_SPLIT('list', 'separator')
ON value = column_name;

询问:

SELECT * FROM demo_table
JOIN STRING_SPLIT('21, 45, 23, 31', ',')
ON value = AGE;

输出: