基於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。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- PostgreSQL出現死鎖該如何解決
- 教你在PostgreSql中使用JSON字段的方法
- 淺談PostgreSQL和SQLServer的一些差異
- 查看postgresql數據庫用戶系統權限、對象權限的方法
- 基於PostgreSQL/openGauss 的分佈式數據庫解決方案