Postgresql
什麼時候需要 AS 關鍵字?
在以下語句(PostgreSQL 11)中:
=> SELECT c cost FROM tt; ERROR: syntax error at or near "cost" LINE 1: SELECT c cost FROM tt;
我得到一個錯誤。在欄位表達式周圍添加括號無濟於事 (
SELECT (c) cost FROM tt;
)。但是添加AS
關鍵字可以修復它。=> SELECT c AS cost FROM tt; cost ------ 1 ...
我意識到這
cost
是一個關鍵字,但我的印AS
像是關鍵字是可選的。從語言的角度來看,為什麼
AS
這裡需要(或有用)關鍵字?這裡的 PostgreSQL 行為是標準的還是有記錄的?是否還有其他
AS
需要關鍵字的情況?
從文件中:
在 SQL 標準中,只要新列名是有效的列名(即,與任何保留關鍵字不同),就可以在輸出列名之前省略可選關鍵字 AS。PostgreSQL 的限制性稍強:如果新列名完全匹配任何關鍵字(保留與否),則需要 AS
cost
是關鍵字,所以as
是必需的。還:
推薦的做法是使用 AS 或雙引號輸出列名,以防止與將來添加的關鍵字發生任何可能的衝突。
…但我的偏好是不引用 & 而是與 using 保持一致
as
。