Как выбрать группу строк, которые соответствуют всем элементам в списке в SQL Server?

Опубликовано: 1 Сентября, 2022

В этой статье мы увидим, как выбрать группу строк, которые соответствуют всем элементам в списке в SQL Server.

Мы можем выполнить вышеуказанную функцию двумя способами. Это:

  • С помощью оператора IN
  • ВЫПОЛНЯЯ JOIN с использованием метода STRING_SPLIT

Оператор IN: позволяет указать список значений в предложении WHERE.

STRING_SPLIT() : эту функцию можно использовать для разделения символьного выражения с использованием указанного разделителя, например запятой (',') и т. д.

Для демонстрации выполните следующие шаги:

Шаг 1: Создайте базу данных

Базу данных можно создать с помощью команды CREATE.

Запрос:

CREATE DATABASE geeks;

Шаг 2 : Использование базы данных

Используйте приведенный ниже оператор SQL, чтобы переключить контекст базы данных на гиков:

Запрос:

USE geeks;

Шаг 3: Определение таблицы

У нас есть следующая 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");

Шаг 5: Просмотрите данные таблицы

Запрос:

SELECT * FROM demo_table;

Выход:

Шаг 6: Выберите группу строк, соответствующих элементам в списке.

Для демонстрации предположим, что у нас есть список со следующими элементами: (21, 45, 23, 31). Мы выберем группу строк, значения которых в столбце AGE соответствуют элементам в списке.

Способ 1: Использование оператора IN

Синтаксис:

SELECT *FROM table_name WHERE column_name IN (list);

Запрос:

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

Выход:

Способ 2: выполнение JOIN с использованием функции STRING_SPLIT()

Синтаксис:

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;

Выход: