В этом учебном пособии вы узнаете, как использовать условие IN в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
Условие SQL Server (Transact-SQL) IN определяет, совпадает ли данное условие с каким-либо значением во вложенным запросе или списке, в операторах SELECT, INSERT, UPDATE или DELETE.
Синтаксис
Синтаксис условия IN в SQL Server (Transact-SQL):
Параметры или аргументы
expression – значение которое проверяется.
value1, value2, ... value_n - список значений которые сравниваются с expression.
Примечание
- Условие SQL Server IN возвращает записи, в которых выражение expression это или value1 или value2 ... или value_n.
- Условие SQL Server IN также называется оператором SQL Server IN.
Пример со строками
Рассмотрим пример условия SQL Server IN, используя строковые значения.
Ниже приведен оператор SQL Server SELECT, который использует условие IN для сравнения значений строк:
1 2 3 |
SELECT * FROM employees WHERE last_name IN ('Стогов', 'Рогов', 'Баранов'); |
Этот пример условия SQL Server IN будет возвращать все строки из таблицы employee, где last_name - это 'Стогов', 'Рогов' или 'Баранов'. Поскольку в SELECT используется *, то все поля из таблицы employee появятся в наборе результатов.
Вышеприведенный пример IN эквивалентен следующему оператору SELECT:
1 2 3 4 5 |
SELECT * FROM employees WHERE last_name = 'Стогов' OR last_name = 'Рогов' OR last_name = 'Баранов'; |
Как вы можете видеть, использование условия SQL Server IN облегчает чтение и повышает эффективность оператора.
Пример с числами
Затем рассмотрим пример условия SQL Server IN с использованием числовых значений.
Например:
1 2 3 |
SELECT * FROM employees WHERE employee_id IN (1, 2, 3, 4, 10); |
Этот пример условия SQL Server IN возвращает всех employees (сотрудников), где employee_id - 1, 2, 3, 4 или 10.
Вышеприведенный пример IN эквивалентен следующему оператору SELECT:
1 2 3 4 5 6 7 |
SELECT * FROM employees WHERE employee_id = 1 OR employee_id = 2 OR employee_id = 3 OR employee_id = 4 OR employee_id = 10; |
Пример использования оператора NOT
И наконец, рассмотрим пример условия IN, используя оператор SQL Server NOT.
Например:
1 2 3 |
SELECT * FROM employees WHERE first_name NOT IN ('Зульфия', 'Захра', 'Гюльчатай'); |
Этот пример условия SQL Server IN будет возвращать все строки из таблицы employees (сотрудников), где first_name не является 'Зульфия', 'Захра' или ' Гюльчатай'. Иногда бывает лучше указать значения, которые вы не хотите получить, в отличие от значения, которые вы хотите получить.
Вышеприведенный пример IN эквивалентен следующему оператору SELECT:
1 2 3 4 5 |
SELECT * FROM employees WHERE first_name <> 'Зульфия' AND first_name <> 'Захра' AND first_name <> 'Гюльчатай'; |