Могу ли я использовать ключевое слово Postgres в качестве псевдонима в списке выбора? - PullRequest
0 голосов
/ 11 мая 2018

Сегодня утром я столкнулся со странной проблемой.Я создавал представление, упрощающее список приложений в таблице Postgres.

Это не удалось.

CREATE OR REPLACE VIEW application_view AS 
SELECT COALESCE( nullif(full_name,''), nullif(additional_info,''), app_name) name
, id
FROM application
ORDER BY COALESCE( nullif(full_name,''), nullif(additional_info,''), app_name) 

, тогда как

CREATE OR REPLACE VIEW application_view AS 
SELECT COALESCE( nullif(full_name,''), nullif(additional_info,''), app_name) application
, id
FROM application
ORDER BY COALESCE( nullif(full_name,''), nullif(additional_info,''), app_name) 

сработало.

Я часто использую имя в качестве имени столбца в таблицах, поэтому есть идеи, почему первый SQL-оператор потерпел неудачу?

1 Ответ

0 голосов
/ 11 мая 2018

Это ключевое слово . Если вы хотите использовать ключевое слово в качестве псевдонима в списке выбора, вы должны использовать слово as:

select 1 name;

ERROR:  syntax error at or near "name"
LINE 1: select 1 name;

select 1 as name;

 name 
------
    1
(1 row)

Из документации об алиасах в списке выбора:

Чтобы указать имя, используемое для выходного столбца, напишите AS output_name после выражения столбца. (Вы можете опустить AS, но только в том случае, если желаемое имя вывода не соответствует ни одному ключевому слову PostgreSQL (см. Приложение C.). Для защиты от возможных добавлений ключевых слов в будущем рекомендуется всегда либо писать AS, либо заключать в кавычки выходное имя. )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...