Иллюстрированный самоучитель по PostgreSQL

Выборка данных командой SELECT

Выражения, константы и синонимы

Целями команды SELECT могут быть не только простые поля, но и произвольные выражения (включающие вызовы функций или различные операции с идентификаторами) и константы. Синтаксис команды практически не изменяется, появляется лишь одно дополнительное требование – все самостоятельные выражения,, идентификаторы и константы должны разделяться запятыми. В списке разрешены произвольные комбинации разнотипных целей.

Команда SELECT также может использоваться для простого вычисления и вывода результатов выражений и констант. В этом случае она не содержит секции FROM или имен столбцов (листинг 4.25).

Листинг 4.25. Выражения и константы.

testdb=# SELECT 2+2,
testdb-# pi (),
testdb-# 'PostgreSQL is more than a calculator!';
?column?| pi |?column?
4 | 3.14159265358979 | PostgreSQL
is more than a calculator!
(1 row)

Для каждой цели в списке может задаваться необязательная секция AS, которая назначает синоним (новое произвольное имя) для каждого поля в итоговом наборе. Имена синонимов подчиняются тем же правилам, что и имена обычных идентификаторов (в частности, они могут содержать внутренние пробелы или совпадать с ключевыми словами при условии заключения их в апострофы и т. д.)

Назначение синонима не влияет на исходное поле и действует лишь в контексте итогового набора, возвращаемого запросом. Секция AS особенно удобна при "выборке" выражений и констант, поскольку синонимы позволяют уточнить смысл неочевидных выражений или констант. В листинге 4.26 приведены те же результаты, что и в листинге 4.25, но с другими названиями полей.

Листинг 4.26. Секция AS с выражениями и константами.

booktown=# SELECT 2 + 2 AS "2 plus 2",
booktown-# pi() AS "the pi fnction",
booktown-# 'PostgreSQL is more than a calculator!' AS comments;
2 plus 2 | the pi function | comments
4 | 3.14159265358979 | PostgreSQL is more than a calculator!
(1 row)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.