Учебное пособие Санкт-Петербург «бхв-петербург»


FROM ( VALUES ( 'SU9', 3, 20, 'F' )



Pdf көрінісі
бет186/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   182   183   184   185   186   187   188   189   ...   256
sql osnovi yazika

FROM
( VALUES ( 'SU9', 3, 20, 'F' ),
( '773', 5, 30, 'I' ),
( '763', 4, 25, 'H' ),
( '733', 3, 20, 'F' ),
( '320', 5, 25, 'F' ),
( '321', 4, 20, 'F' ),
( '319', 3, 20, 'F' ),
( 'CN1', 0, 10, 'B' ),
( 'CR2', 2, 15, 'D' )
) AS aircraft_info ( aircraft_code, max_seat_row_business,
max_seat_row_economy, max_letter )
Здесь aircraft_info определяет имя виртуальной таблицы, а список иденти-
фикаторов — имена ее атрибутов (aircraft_code, max_seat_row_business,
max_seat_row_economy, max_letter). Эти атрибуты можно использовать во
всех частях команды SELECT, как если бы это были атрибуты обычной таблицы.
236


Контрольные вопросы и задания
Остальные виртуальные таблицы создаются аналогичным способом.
Для соединения таблиц используется ключевое слово CROSS JOIN, хотя в дан-
ном случае вместо этого можно было просто поставить запятые.
Как это и бывает всегда, четыре таблицы образуют декартово произведение из
своих строк, а затем на основе условия WHERE «лишние» строки отбрасываются.
В этом условии используется условный оператор CASE. Он позволяет нам поста-
вить допустимый номер ряда в зависимость от класса обслуживания:
WHERE
CASE WHEN fare_condition = 'Business'
THEN seat_row::integer <= max_seat_row_business
WHEN fare_condition = 'Economy'
THEN seat_row::integer > max_seat_row_business
AND seat_row::integer <= max_seat_row_economy
В этом выражении используется приведение типов: seat_row::integer. Эта
операция необходима, т. к. в виртуальной таблице номера рядов представлены
в виде символьных строк, а для выполнения сравнения числовых значений в
данной ситуации нужен целый тип. При написании условного оператора нужно
учесть, что в виртуальной таблице мы указали не количество рядов в бизнес-
классе и экономическом классе, а номера последних рядов в этих классах. По-
этому возникает конструкция


Достарыңызбен бөлісу:
1   ...   182   183   184   185   186   187   188   189   ...   256




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

    Басты бет