Использование алиасов в PostgreSQL

Приветствую!

Помогите разобраться. Имеем запрос следующего вида:

SELECT param, value, domain,
INDEX('my.example.net', domain) AS "level"
FROM table1 AS "table2"
WHERE table2.level>0

Так есть, необходимо сделать выборку по виртуальному столбцу, на что postgres выдаёт следующую ошибку: "ОШИБКА: колонка table2.level не существует. SQL-состояние: 42703".

Это баг или для подобного должен быть иной синтаксис? Ну не везде же писать "index('my.example.net', domain)"…

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Вы путаете список выбора и

Вы путаете список выбора и табличное выражение. Рекомендую почитать главу Запросы:
http://postgresql.ru.net/manual/queries.html
Грубо говоря, список полей в SELECT (список выбора) - это то, что нужно показать из того что есть во FROM. Поскольку табличное выражение FROM (или попросту виртуальная таблица) формируется РАНЬШЕ, чем будет осуществлена выборка из неё посредством списка выбора в SELECT, то понятно, что использовать алиасы, употреблённые в списке выбора нельзя - они ещё не видны.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023