Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab4.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
24.77 Кб
Скачать

Ключевые слова any и all

Ключевые слова ANY и ALL могут быть использованы со строковыми подзапросами. Если подзапросу будет предшествовать ключевое слово ALL, условие сравнения считается выполненным только в том случае, если оно выполняется для всех значений в результирующем столбце подзапроса. Если тексту подзапроса предшествует ключевое слово ANY, то условие сравнения будет считаться выполненным, если оно удовлетворяется хотя бы для какого-либо (одного или нескольких) значений в результирующем столбце подзапроса. Если тексту подзапроса предшествует слово ALL, то условие выполнено, если оно выполнено для всех значений, возвращаемых подзапросом. Если в результате выполнения подзапроса будет получено пустое значение, то для ключевого слова ALL условие сравнения будет считаться выполненным, а для ключевого слова ANY — невыполненным. Дополнительно можно использовать ключевое слово SOME, являющееся синонимом слова ANY.

Пример 4. Использование ключевых слов any или some

Найдите имена всех работников в США, чья зарплата меньше зарплаты хотя бы одного работника отделения компании под названием 'Software Development'.

Подзапрос создает множество значений, а внешний запрос выбирает сведения о тех работниках, чья зарплата больше любого из значений в этом множестве (фактически меньше максимального значения).

SELECT full_name, salary

  FROM employee WHERE job_country = 'USA' AND salary > ANY

    (SELECT salary FROM employee WHERE dept_no =

       (SELECT dept_no FROM department

          WHERE department LIKE 'Software Development'))

FULL_NAME              SALARY    

====================   ========  

Nelson, Robert         105900    

Young, Bruce           97500     

Lambert, Kim           102750    

Johnson, Leslie        64635     

Forest, Phil           75060     

Weston, K. J.          86292,94  

Lee, Terri             53793     

Hall, Stewart          69482,63  

Young, Katherine       67241,25  

Papadopoulos, Chris    89655     

....

Пример 5. Использование ключевого слова all

Найдите всех работников, чья заработная плата меньше заработной платы любого работника отделения компании под номером 'European Headquarters '.

SELECT full_name, salary FROM employee WHERE salary > ALL (SELECT salary FROM employee WHERE dept_no=(SELECT dept_no FROM department WHERE department LIKE ‘%European Headquarters%’))

FULL_NAME              SALARY    

====================   ========  

Nelson, Robert         105900    

Young, Bruce           97500     

Lambert, Kim           102750    

Johnson, Leslie        64635     

Forest, Phil           75060     

Weston, K. J.          86292,94  

Lee, Terri             53793     

Hall, Stewart          69482,63  

Young, Katherine       67241,25  

Papadopoulos, Chris    89655     

.....

В целом этот запрос подобен предыдущему. И в данном случае можно было бы использовать подзапрос, определяющий максимальное значение зарплаты персонала отделения под номером ‘European Headquarters ' , после чего с помощью внешнего запроса выбрать сведения обо всех работниках компании, зарплата которых превышает это значение. Однако в данном примере выбран подход с использованием ключевого слова ALL.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]