我收到以下錯誤:
postgresql 錯誤:“2020”或附近的語法錯誤第 2 行:... THEN amount * split_exchange_rate ELSE 0 END) AS 2020Q4_rev...
請參閱下面的代碼。我正在使用 postgresql
SELECT object_id
, SUM(CASE WHEN created::date >= '2020-10-01' AND created::date <= '2020-12-31' THEN amount * exchange_rate ELSE 0 END) AS 2020Q4_revenue
, SUM(CASE WHEN created::date >= '2021-01-01' AND created::date <= '2021-03-31' THEN amount * exchange_rate ELSE 0 END) AS 2021Q1_revenue
, SUM(CASE WHEN created::date >= '2021-04-01' AND created::date <= '2021-06-30' THEN amount * exchange_rate ELSE 0 END) AS 2021Q2_revenue
, SUM(CASE WHEN created::date >= '2021-07-01' AND created::date <= '2021-09-30' THEN amount * exchange_rate ELSE 0 END) AS 2021Q3_revenue
from raw_data.purchase_revenue pr
group by 1
uj5u.com熱心網友回復:
別名 like2020Q4_revenue是 SQL 中的“識別符號”,因此必須符合以下規則:
SQL 識別符號和關鍵字必須以字母(
a-z,但也可以是帶有變音符號和非拉丁字母的字母)或下劃線 (_)開頭。識別符號或關鍵字中的后續字符可以是字母、下劃線、數字 (0-9) 或美元符號 ($)。請注意,根據 SQL 標準的字母,識別符號中不允許使用美元符號,因此使用美元符號可能會降低應用程式的可移植性。
如果您用雙引號參考它,您仍然可以使用該別名:
還有第二種識別符號:分隔識別符號或帶引號的識別符號。它是通過將任意字符序列括在雙引號 (
") 中形成的。分隔識別符號始終是識別符號,而不是關鍵字。So"select"可用于參考名為“select”的列或表,而未加引號的 select 將被視為關鍵字,因此在需要表名或列名的地方使用時會引發決議錯誤。帶引號的識別符號可以包含任何字符,代碼為零的字符除外。(要包含雙引號,請寫兩個雙引號。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326933.html
標籤:PostgreSQL 列别名
