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

Секция ORDER BY с несколькими выражениями



Листинг 4.43. Секция ORDER BY с несколькими выражениями

booktown=# SELECT edition, publication

booktown-# FROM editions

booktown-# ORDER BY edition ASC,

booktown-# publication DESC;

edition | publication

1 | 1995-03-28

1 | 1987-03-01

1 | 1981-08-01

1 | 1958-01-01

1 | 1957-03-01

1 | 1957-01-01

1 | 1949-03-01



1 | 1947-03-04

1 | 1922-01-01

1 |1868-01-01

2 | 2001-03-01

2 | 1998-12-01

2 | 1998-09-01

2 | 1993-10-01

3 | 2000-09-12

3 | 1999-10-01

3 | 1999-10-01

(17 rows)

Запрос выбирает поля edition и publication всех записей таблицы editions. Затем секция ORDER BY определяет два поля, по которым должна осуществляться сортировка результата: edition (по возрастанию) и publication (по убыванию).

Как видно из результатов в листинге 4.43, сначала записи сортируются по номеру издания, а при совпадении номеров дальнейшая сортировка осуществляется по дате публикации — от новых к старым.

Сортировка играет важную роль при использовании ключевого слова DISTINCT, упоминавшегося в подразделе «Удаление дубликатов и ключевое слово DISTINCT». Если вы хотите ограничиться просмотром последнего издания для каждого значения поля edition таблицы editions, комбинация ORDER BY и DISTINCT позволит добиться эффекта, аналогичного применению секции GROUP BY (листинг 4.44).



Содержание раздела