SQLite Exists оператор
Вступление
EXISTS проверяет наличие результата подзапроса. Подзапрос EXISTS проверяет, получает ли подзапрос хотя бы одну строку. Если данные не возвращаются, тогда этот оператор возвращает FALSE.
Действительный подзапрос EXISTS должен содержать внешнюю ссылку, и это должен быть коррелированный подзапрос.
Список выбора в подзапросе EXISTS фактически не используется при оценке EXISTS, поэтому он может содержать любой действительный список выбора.
Версия SQLite: 3.8
пример
Вот пример оператора SQL EXISTS
Образец таблицы: клиент
Пример таблицы: агенты
Чтобы получить «agent_code», «agent_name», «working_area» и «Commission» от «агентов», с соблюдением следующих условий:
1. «оценка» в таблице «клиент» должна быть 3,
2. 'agent_code' в таблице 'customer' и 'agent' должен совпадать,
3. «комиссия» «агентов» должна располагаться в порядке возрастания,
4. вышеуказанные условия (1) и (2) должны соответствовать хотя бы одной строке,
можно использовать следующий оператор SQL:
SELECT agent_code,agent_name,working_area,commission
FROM agents
WHERE exists
(SELECT *
FROM customer
WHERE grade=3 AND agents.agent_code=customer.agent_code)
ORDER BY commission;
Вот результат.
Пример вывода:
AGENT_CODE AGENT_NAME WORKING_AREA COMMISSION ---------- ---------------------------------------- ------------ ---------- A002 Мукеш Мумбаи 0,11 A009 Бенджамин Хэмпшир 0.11 A008 Alford New York 0,12 A010 Сантакумар Ченнаи 0,14
Пример: SQL существует с группировкой по
Здесь мы обсудили, как SQL EXIST может работать с GROUP BY в операторе select.
Образец таблицы: клиент
Чтобы получить 'cust_code', 'cust_name', 'cust_city' и 'grade' из таблицы 'customer', с соблюдением следующих условий:
1. «оценка» в таблице «клиент» должна быть 2,
2. более 2 агентов присутствуют в классе 2,
3. «оценка» в таблице клиентов должна составить группу,
можно использовать следующий оператор SQL:
SELECT cust_code, cust_name, cust_city, grade
FROM customer
WHERE grade=2 AND EXISTS
(SELECT COUNT(*) FROM customer
WHERE grade=2
GROUP BY grade HAVING COUNT(*)>2);
Вот результат.
Пример вывода:
CUST_CODE CUST_NAME CUST_CITY GRADE ---------- ---------- ------------------------------ ----- ---------- C00013 Холмс Лондон 2 C00001 Micheal New York 2 C00025 Равиндран Бангалор 2 C00024 Кук Лондон 2 C00018 Флеминг Брисбан 2 C00022 Avinash Mumbai 2 C00017 Сринивас Бангалор 2 C00003 Мартин Торенто 2 C00014 Rangarappa Bangalore 2 C00016 Venkatpati Bangalore 2
Пример: SQL НЕ существует
Вот пример оператора SQL EXISTS с использованием оператора NOT.
Образец таблицы: клиент
Пример таблицы: заказы
Чтобы получить 'agent_code', 'ord_num', 'ord_amount' и 'cust_code' из таблицы 'orders', со следующим условием -
1. любой агент таблицы «customer», не имеющий «payment_amt», равен 1400,
можно использовать следующий оператор SQL:
SELECT agent_code,ord_num,ord_amount,cust_code
FROM orders
WHERE NOT EXISTS
(SELECT agent_code FROM customer WHERE payment_amt=1400);
Вот результат.
Пример вывода:
AGENT_CODE ORD_NUM ORD_AMOUNT CUST_CODE ---------- ---------- ---------- ---------- A003 200100 1000 C00015 A010 200110 3000 C00019 A010 200107 4500 C00007 A007 200112 2000 C00016 A002 200113 4000 C00022 A012 200102 2000 C00012 A008 200114 3500 C00002 A004 200122 2500 C00003 A006 200118 500 C00023 A010 200119 4000 C00007 A004 200121 1500 C00008 A011 200130 2500 C00025 A005 200134 4200 C00004 A013 200115 2000 C00013 A004 200108 4000 C00008 A005 200103 1500 C00021 A011 200105 2500 C00025 A010 200109 3500 C00011 A008 200101 3000 C00001 A008 200111 1000 C00020 A004 200104 1500 C00006 A002 200106 2500 C00005 A005 200125 2000 C00018 A001 200117 800 C00014 A002 200123 500 C00022 A002 200120 500 C00009 A009 200116 500 C00010 A007 200124 500 C00017 A002 200126 500 C00022 A006 200129 2500 C00024 A003 200127 2500 C00015 A002 200128 3500 C00009 A010 200135 2000 C00007 A012 200131 900 C00012 A002 200133 1200 C00009 A013 200132 4000 C00013
Предыдущий: IN, а не IN оператор
Далее: Вставить
Новый контент: Composer: менеджер зависимостей для PHP , R программирования