什么时候需要AS关键字?

tin*_*lyx 5 postgresql sql-standard

在以下语句中(PostgreSQL 11):

=> SELECT c cost FROM tt;
ERROR:  syntax error at or near "cost"
LINE 1: SELECT c cost FROM tt;
Run Code Online (Sandbox Code Playgroud)

我收到一个错误。在字段表达式周围添加括号没有帮助 ( SELECT (c) cost FROM tt;)。但添加AS关键字就可以解决这个问题。

=> SELECT c AS cost FROM tt;
 cost 
------
    1
...
Run Code Online (Sandbox Code Playgroud)

我意识到这cost是一个关键字,但我的印象是该AS关键字是可选的。

从语言的角度来看,为什么AS这里需要(或有帮助)关键字?这里的 PostgreSQL 行为是标准的还是在某处记录的?

还有其他情况AS需要使用关键字吗?

Phi*_*lᵀᴹ 5

文档中:

在 SQL 标准中,只要新列名是有效列名(即与任何保留关键字不同),就可以在输出列名之前省略可选关键字 AS。PostgreSQL 的限制稍微多一些:如果新列名与任何关键字匹配(无论是否保留),则需要 AS

cost是一个关键字,所以as是必需的。

还:

建议的做法是使用 AS 或双引号输出列名称,以防止与将来添加的关键字发生任何可能的冲突。

...但我的偏好是不引用 & 而是与使用保持一致as