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

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

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

Пример 7.1.22. Использование ключевых слов ANY и SOME

Найдите всех студентов, чей балл превышает балл хотя бы одного студента группы 001

SELECT НГ, НС, ФИО, ГОДР, АДРЕС, ПБАЛЛ

FROM СТУДЕНТ

WHERE ПБАЛЛ > SOME (SELECT ПБАЛЛ

FROM СТУДЕНТ

WHERE НГ =001);

Хотя этот запрос может быть записан с использованием подзапроса, определяющего минимальный балл студентов группы ТМ-31, после чего внешний подзапрос сможет выбрать сведения обо всех студентах института, чей балл превосходит это значение, возможен и другой подход, заключающийся в использовании ключевых слов SOME/ANY. В этом случае внутренний подзапрос создает множество значений {5;4,1}, а внешний запрос выбирает сведения о тех работниках, чей балл больше любого из значений в этом множестве (фактически больше минимального значения – 4,1). Подобный альтернативный метод можно считать более естественным, чем определение в подзапросе минимального балла. Но и в том и в ином случае вырабатываются одинаковые результаты выполнения запроса, которые представлены в табл. 7.1.25.

Таблица 7.1.25. Результат выполнения запроса из примера 7.1.22

Группа

№ студента

ФИО

Год рождения

АДРЕС

Проходной балл

001

01

Васильев М.В.

1985

5

101

01

Аристов Р.П.

1979

4,5

101

02

Бондаренко С.А.

1978

 

4,5

101

03

Борисова Е.И.

1979

 

4,25

101

04

Макова Н.В.

1977

 

4,75

102

01

Боярская Н.П.

1977

 

4,5

102

02

Федоров Д.К.

1977

 

4,25

102

03

Сидоров И.Р.

1977

 

4,5

103

01

Андреев Г.М.

1978

 

4,25

103

02

Петров О.К.

1979

 

4,75

104

01

Иванов К.К.

1977

 

4,5

104

07

Григорьева Е.А.

1979

 

4,75

105

01

Серов И.Г.

1980

 

4,5

105

12

Антоненко К. П.

1978

 

4,5

ТМ-31

07

Глушков И.В.

1986

4,5

ТМ-31

12

Костюшко Т.А.

1986

4,25

ТМ-31

19

Самойленко Ю.А.

1986

4,75

ТМ-31

20

Святненко Ю.В.

1986

4,75

ТМ-31

23

Терпило Д.А.

1986

4,75

ТМ-31

24

Черняк А.Ю.

1986

4,25

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

Найдите всех студентов, чей балл превышает балл любого студентата группы 403

SELECT НГ, НС, ФИО, ГОДР, АДРЕС, ПБАЛЛ

FROM СТУДЕНТ

WHERE ПБАЛЛ > SELECT ПБАЛЛ

FROM СТУДЕНТ

WHERE НГ = 403);

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

Таблица 7.1.26. Результат выполнения запроса из примера 7.1.23

Группа

№ студента

ФИО

Год рождения

АДРЕС

Проходной балл

001

01

Васильев М.В.

1985

5

001

02

Носков А.К.

1976

4,1

101

01

Аристов Р.П.

1979

4,5

101

02

Бондаренко С.А.

1978

 

4,5

101

03

Борисова Е.И.

1979

 

4,25

101

04

Макова Н.В.

1977

 

4,75

102

01

Боярская Н.П.

1977

 

4,5

102

02

Федоров Д.К.

1977

 

4,25

102

03

Сидоров И.Р.

1977

 

4,5

103

01

Андреев Г.М.

1978

 

4,25

103

02

Петров О.К.

1979

 

4,75

104

01

Иванов К.К.

1977

 

4,5

104

07

Григорьева Е.А.

1979

 

4,75

105

01

Серов И.Г.

1980

 

4,5

105

12

Антоненко К. П.

1978

 

4,5

ТМ-31

07

Глушко И.В.

1986

4,5

ТМ-31

12

Костюшко Т.А.

1986

4,25

ТМ-31

19

Самойленко Ю.А.

1986

4,75

ТМ-31

20

Святненко Ю.В.

1986

4,75

ТМ-31

23

Терпило Д.А.

1986

4,75

ТМ-31

24

Черняк А.Ю.

1986

4,25

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