Выборка данных командой 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)