SQLсервер в Linux -самостоятельное освоение пакета


Листинг 4 51 Конструкции CASE в подзапросах



Листинг 4.51. Конструкции CASE в подзапросах

booktown=# SELECT isbn,

booktown-# CASE WHEN cost > 20 THEN 'N/A - (Out of price range)'

booktown-# ELSE (SELECT title FROM books b JOIN editions e

booktown(# ON (b.id = e.book_id)

booktown(# WHERE e.isbn = stock.isbn)

booktown-# END AS cost_range

booktown-# FROM stock

booktown-# ORDER BY cost_range ASC

booktown-# LIMIT 8;

isbn | cost_range

0451457994 | 2001: A Space Odyssey

0394800753 | Bartholomew and the Oobleck

0441172717 | Dune

0760720002 | Little Women

0385121679 | N/A - (Out of price range)

039480001X | N/A - (Out of price range)

044100590X | N/A - (Out of price range)

0451198492 | N/A - (Out of price range)

(8 rows)

Для всех книг, цена которых не превышает 20, запрос возвращает название книги (подзапрос к таблице books) и код ISBN (основной запрос к таблице stock).













Начало  Назад  Вперед