SQLite IN и NOT IN операторы
Вступление
Операторы IN и NOT IN принимают один скалярный операнд слева и векторный операнд справа, образованный явным списком из нуля или более скаляров или одним подзапросом. Когда правый операнд оператора IN или NOT IN является подзапросом, подзапрос должен иметь один столбец результата. Когда правый операнд является пустым набором, результат IN равен false, а результат NOT IN - true, независимо от левого операнда и даже если левый операнд равен NULL. Результат оператора IN или NOT IN определяется следующей матрицей:
Левый операнд равен NULL | Правый операнд содержит NULL | Правый операнд - пустой набор | Левый операнд найден в правом операнде | Результат оператора IN | Результат оператора NOT IN |
---|---|---|---|---|---|
нет | нет | нет | нет | ложный | правда |
не имеет значения | нет | да | нет | ложный | правда |
нет | не имеет значения | нет | да | правда | ложный |
нет | да | нет | нет | НОЛЬ | НОЛЬ |
да | не имеет значения | нет | не имеет значения | НОЛЬ | НОЛЬ |
Синтаксис:
SELECT [имя_столбца ... | выражение] ОТ [имя_таблицы] ГДЕ [НЕ] IN (значение_1, значение_2 ..... значение_n);
Версия SQLite: 3.8
параметры
название | Описание |
---|---|
column_name | Имя столбца таблицы. |
выражение | Выражение состоит из одной константы, переменной, скалярной функции или имени столбца и может также быть фрагментами запроса SQLite, которые сравнивают значения с другими значениями или выполняют арифметические вычисления. |
table_name | Наименование таблицы. |
значение_1 значение_2 ... | Значения указаны в скобках. |
пример
Чтобы узнать, присутствует ли значение поиска в указанном диапазоне, можно использовать следующую инструкцию SQLite:
SELECT 10 IN(10, 20, 30);
Вот результат.
10 В (10, 20, 30) ----------------- 1
SELECT 4 IN(10, 20, 30);
Вот результат.
4 В (10, 20, 30) ---------------- 0
Пример: оператор SQLite IN с текстовым значением
Проверочное значение оператора IN также может быть строкой, словом или предложением. Эти значения также можно проверить в наборе значений, разделенных запятыми, и получить строки, содержащие эти значения.
Пример таблицы: агенты
Получить данные всех столбцов из таблицы «агенты» со следующим условием -
1. «Рабочая зона» для «агентов» - это «Лондон», «Мумбаи» или «Ченнай»,
можно использовать следующий оператор SQLite:
SELECT agent_code, agent_name, working_area
FROM agents
WHERE working_area IN ('London', 'Mumbai', 'Chennai');
Вот результат.
AGENT_CODE AGENT_NAME WORKING_AREA ---------- ---------------------------------------- ------------ A010 Сантакумар Ченнаи A002 Мукеш Мумбаи A006 McDen London
Это утверждение также можно использовать как ниже:
SELECT agent_code, agent_name, working_area
FROM agents
WHERE working_area='London'
OR working_area='Mumbai'
OR working_area='Chennai';
Вот результат.
AGENT_CODE AGENT_NAME WORKING_AREA ---------- ---------------------------------------- ------------ A010 Сантакумар Ченнаи A002 Мукеш Мумбаи A006 McDen London
Пример: оператор SQLite IN с числовым значением
Далее мы обсудили, как можно искать числовое значение в списке предоставленных значений, используя оператор IN в операторе выбора.
Пример таблицы: агенты
Получить данные всех столбцов из таблицы «агенты» со следующим условием -
1. «Комиссией» для агентов будет любая из .13, .14 и .12,
можно использовать следующий оператор SQLite:
SELECT agent_code,agent_name,working_area FROM agents
WHERE commission IN (.13,.14,.12);
Вот результат.
AGENT_CODE AGENT_NAME WORKING_AREA ---------- ---------------------------------------- ------------------------------------- A003 Алекс Лондон A008 Alford New York A010 Сантакумар Ченнаи A012 Люсида Сан-Хосе A005 Андерсон Брисбан A001 Суббарао Бангалор
Пример: оператор SQLite NOT IN
Пример таблицы: агенты
Получить данные всех столбцов из таблицы «агенты» со следующим условием -
1. «комиссия» для агентов не будет равна .13, .14, .12,
можно использовать следующий оператор SQLite:
SELECT agent_code,agent_name,working_area
FROM agents
WHERE commission NOT IN (.13,.14,.12);
Вот результат.
AGENT_CODE AGENT_NAME WORKING_AREA ---------- ---------- ------------ A007 Рамасундар Бангалор A011 Рави Кумар Бангалор A002 Мукеш Мумбаи A006 McDen London A004 Иван Торенто A009 Бенджамин Хэмпшир
Предыдущий: МЕЖДУ Оператором
Далее: СУЩЕСТВУЕТ Оператор
Новый контент: Composer: менеджер зависимостей для PHP , R программирования