Как выбрать группу строк, которые соответствуют всем элементам в списке в SQL Server?
В этой статье мы увидим, как выбрать группу строк, которые соответствуют всем элементам в списке в 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;Выход:
