кодесурса
«SQL

SQL ЛЮБОЙ оператор

script1adsense2code
script1adsense3code

ЛЮБОЙ оператор

ЛЮБОЙ сравнивает значение с каждым значением в списке или результатами запроса и оценивает как true, если результат внутреннего запроса содержит хотя бы одну строку. ЛЮБОМУ должны предшествовать операторы сравнения . Предположим, что использование больше (>) с ЛЮБОЙ означает больше, чем хотя бы одно значение.

Синтаксис:

 SELECT [имя_столбца ... | выражение1]
ОТ [имя_таблицы]
ГДЕ выражение2 сравнение_оператор {ВСЕ | ЛЮБОЙ | НЕКОТОРЫЕ} (подзапрос)

Параметры:

название Описание
column_name Имя столбца таблицы.
выражение1 Выражение состоит из одной константы, переменной, скалярной функции или имени столбца и может также быть фрагментами запроса SQL, которые сравнивают значения с другими значениями или выполняют арифметические вычисления.
table_name Наименование таблицы.
ГДЕ выражение2 Сравнивает скалярное выражение, пока не будет найдено совпадение для ЛЮБОГО оператора. Одна или несколько строк должны соответствовать выражению, чтобы вернуть логическое значение ИСТИНА для оператора ЛЮБОЙ.
comparison_operator Сравнивает выражение с подзапросом. Сравнение должно быть стандартным оператором сравнения (=, <>,! =,>,> =, <Или <=).

Наглядное представление: SQL ЛЮБОЙ оператор

«SQL

Поддержка СУБД: SQL ЛЮБОЙ оператор

СУБД команда
MySQL поддержанный
PostgreSQL поддержанный
SQL Server поддержанный
оракул поддержанный

Пример: SQL ЛЮБОЙ оператор

Чтобы получить 'agent_code', 'agent_name', 'working_area', 'Commission' из таблицы 'agent' при следующих условиях -

1. 'agent_code' должен быть любым 'agent_code' из таблицы 'customer', который удовлетворяет условию ниже:

a) 'cust_country' в таблице 'customer' должно быть 'UK',

можно использовать следующий оператор SQL:

SELECT agent_code,agent_name,working_area,commission
FROM  agents
WHERE agent_code=ANY(
SELECT agent_code FROM customer
WHERE cust_country='UK');

Образец таблицы: клиент


Пример таблицы: агенты


Выход:

 AGENT_CODE AGENT_NAME WORKING_AREA COMMISSION
---------- -------------------- -------------------- ----------
A009 Бенджамин Хэмпшир .11
A003 Алекс Лондон .13
A006 McDen London .15

SQL ЛЮБОЙ оператор во вложенном подзапросе

В этом примере мы обсудили, как оператор SQL ANY может работать с вложенным оператором select .

Образец таблицы: клиент


Пример таблицы: агенты


Пример таблицы: заказы


Чтобы получить 'agent_code', 'agent_name', 'working_area', 'Commission' из таблицы 'agent' при следующих условиях -

1. 'agent_code' должен быть любым 'agent_code' из таблицы 'customer', который удовлетворяет условию ниже:
a) 'agent_code' должен быть любым 'agent_code' из таблицы 'orders', который удовлетворяет условию ниже:
i) «advance_amount» таблицы «orders» должно быть больше 600,

можно использовать следующий оператор SQL:

SELECT agent_code,agent_name,working_area,commission
FROM  agents
WHERE agent_code=ANY(
SELECT agent_code FROM customer
WHERE agent_code =ANY
(SELECT agent_code FROM orders
WHERE  advance_amount>600));

Выход:

 AGENT_CODE AGENT_NAME WORKING_AREA COMMISSION
---------- -------------------- -------------------- ----------
A008 Alford New York .12
A010 Santakumar Chennai .14
A005 Андерсон Брисбан .13
A002 Мукеш Мумбаи .11

SQL ЛЮБОЙ оператор с GROUP BY

В этом примере мы обсудили использование оператора SQL ANY с SQL GROUP BY в операторе выбора .

Образец таблицы: клиент


Пример таблицы: агенты


Пример таблицы: заказы


Чтобы получить 'agent_code' и 'advance_amount' из таблицы 'orders' со следующими условиями -

1. 'advance_amount' таблицы 'orders' должно быть больше 600,
2. 'agent_code' должен быть любым 'agent_code' из таблицы 'customer', который удовлетворяет условию ниже:
a) «agent_code» должен быть любым «agent_code» из таблицы «agent», который удовлетворяет условию ниже:
i) «комиссия» таблицы «агентов» должна быть больше или равна .12,
3. 'agent_code' в таблице 'orders' должен быть в группе,

можно использовать следующий оператор SQL:

SELECT DISTINCT(agent_code),advance_amount
FROM orders
WHERE advance_amount>600
AND agent_code=ANY(
SELECT agent_code
FROM customer
WHERE agent_code=ANY(
SELECT agent_code FROM agents
WHERE commission>=.12
GROUP BY agent_code));

Выход:

 AGENT_CODE ADVANCE_AMOUNT
---------- --------------
A005 1800
A008 2000
A010 800
A005 700
A008 1000
A010 900
A010 700

SQL ЛЮБОЙ с группировкой и упорядочением по

В этом примере мы обсудили использование оператора SQL ANY с предложениями GROUP BY и ORDER BY в операторе выбора .

Образец таблицы: клиент


Пример таблицы: агенты


Пример таблицы: заказы


Чтобы получить 'agent_code' и 'advance_amount' из таблицы 'orders' со следующими условиями -

1. 'advance_amount' таблицы 'orders' должно быть больше 600,
2. 'agent_code' должен быть любым 'agent_code' из таблицы 'customer', который удовлетворяет условию ниже:
a) «agent_code» должен быть любым «agent_code» из таблицы «agent», который удовлетворяет условию ниже:
i) «комиссия» таблицы «агентов» должна быть больше или равна .12,
3. 'agent_code' в таблице 'orders' должен быть в группе,
4. Таблица 'advance_amount' таблицы 'orders' должна располагаться в порядке возрастания,

можно использовать следующий оператор SQL :

SELECT DISTINCT(agent_code),advance_amount
FROM orders
WHERE advance_amount>600
AND agent_code=ANY(
SELECT agent_code
FROM customer
WHERE agent_code=ANY(
SELECT agent_code FROM agents
WHERE commission>=.12
GROUP BY agent_code
)
)
ORDER BY advance_amount;

Выход:

 AGENT_CODE ADVANCE_AMOUNT
---------- --------------
A005 700
A010 700
A010 800
A010 900
A008 1000
A005 1800
A008 2000

Смотрите нашу базу данных моделей

Упражнения по SQL

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Предыдущая: МЕЖДУ
Далее: ВСЕ

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code