Учебно-практическое пособие москва 2017 ббк



Pdf көрінісі
бет134/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   130   131   132   133   134   135   136   137   ...   243
Байланысты:
Язык SQL. Базовый курс

некоррелированными
.
SELECT flight_no, departure_city, arrival_city
FROM routes
WHERE departure_city IN (
SELECT city
FROM airports
WHERE timezone ~ 'Krasnoyarsk'
)
AND arrival_city IN (
SELECT city
FROM airports
WHERE timezone ~ 'Krasnoyarsk'
);
flight_no | departure_city | arrival_city
-----------+----------------+--------------
PG0070
| Абакан
| Томск
PG0071
| Томск
| Абакан
PG0313
| Абакан
| Кызыл
PG0314
| Кызыл
| Абакан
PG0653
| Красноярск
| Барнаул
PG0654
| Барнаул
| Красноярск
(6 строк)
Можно сформировать множество значений для предиката IN с помощью скалярных
подзапросов. Если мы захотим найти самый западный и самый восточный аэропор-
ты и представить полученные сведения в наглядной форме, то запрос может быть
таким:
SELECT airport_name, city, longitude
FROM airports
WHERE longitude IN (
( SELECT max( longitude ) FROM airports ),
( SELECT min( longitude ) FROM airports )
)
ORDER BY longitude;
airport_name |
city
| longitude
--------------+-------------+------------
Храброво
| Калининград | 20.592633
Анадырь
| Анадырь
| 177.741483
(2 строки)
Конечно, в случае, когда необходимо, наоборот, исключить какие-либо значения из
рассмотрения, можно использовать конструкцию NOT IN.
Иногда возникают ситуации, когда от подзапроса требуется лишь установить сам
факт наличия или отсутствия строк в конкретной таблице, удовлетворяющих опре-
деленному условию, а непосредственные значения атрибутов в этих строках инте-
137


реса не представляют. В подобных случаях используют


Достарыңызбен бөлісу:
1   ...   130   131   132   133   134   135   136   137   ...   243




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет