基於PostgreSql 別名區分大小寫的問題

PostgreSql是區分大小寫的

如果別名的大小不一致就會提示錯誤:

SELECT
 *
FROM
 (
  SELECT
   cpi."product_item_id" "PRODUCT_ITEM_ID"
  FROM
   prd.up_product_item cpi ) a
WHERE
 a.PRODUCT_ITEM_ID=1

一個很簡單的子查詢,但是會出錯,雖然從語句上看大小寫是一致的,但是內部查詢中還是使用瞭小寫。PostgreSql對於大寫都需要加上雙引號的,不然還是視作小寫而定。

正確的寫法如下

SELECT
 *
FROM
 (
  SELECT
   cpi."product_item_id" "PRODUCT_ITEM_ID"
  FROM
   prd.up_product_item cpi ) a
WHERE
 a."PRODUCT_ITEM_ID"=1

補充:postgresql查詢字段別名大寫的要加雙引號

PostgreSQL對表名、字段名都是區分大小寫的。

在圖形化界面可以正常新建。用SQL語句的時候需要加雙引號,如果jdbc查詢等處,記得使用轉義符號。

PostgreSQL在SQL語句中對大小寫是不敏感的。

select ID from t_user 和 select id from t_user

都會從t_user這個表中查詢id這個字段。如果要查詢大寫字母的字段,同樣要加上雙引號:select “ID” from t_user

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。