Postgresql

什麼時候需要 AS 關鍵字?

  • May 14, 2019

在以下語句(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

引用自:https://dba.stackexchange.com/questions/238143