Есть операции до и после выбора. Например, distinct
а AS
также инструкции после выбора, category_integer
например, отфильтровывают повторяющиеся результаты во время самих процессов выбора, и поскольку такие повторяющиеся результаты даже не вводят набор результатов, который нужно упорядочить или сгруппировать.
Когда вы используете AS
, вы сообщаете PostgreSQL, чтобы получить результат и поместить его в столбец с именем category_integer
в выводе. Вы фактически не делаете переменную здесь, которая доступна во время выполнения запроса, поскольку результат доступен только после выполнения запроса. Таким образом, вы можете сделать это только с помощью подзапросов, в которых у вас есть результат, доступный как виртуальная таблица сам по себе, где category_integer
столбец в таблице, а не переменная.
SELECT category_integer,
CASE WHEN category_integer = 0
THEN 'foo'
ELSE 'bar'
END AS category_label
FROM (SELECT FLOOR(0) AS category_integer FROM test01) AS test02
https://www.postgresql.org/docs/current/static/queries-select-lists.html
https://www.postgresql.org/docs/current/static/queries-table-expressions.html#QUERIES-TABLE-ALIASES