我想選擇一個現有的列,並使用代碼縮進來創建另一個列,但是我得到了替代ORA-00923:FROM關鍵字找不到預期的地方'錯誤或'缺少關鍵字'錯誤。 (我是初學者)sql oracle case'from keyword not found where expected'
你能幫我嗎?
編輯:id是一個整數,描述是一個字符串 我想爲每個id創建一個列,當描述值匹配「VALUE1」或「VALUE2」時,它將用作標誌。在表1中,只有從值的標識符到字符串的映射,在表2中我擁有所有記錄。前
select t2.id,
(case when exists (select 1
from table_1 t1
where t1.description in ('VALUE1', 'VALUE2') and
t2.id = t1.id
)
then 1 else 0
end) as DesiredColumnName,
from db.table_2 t2;
請編輯您的問題,並提供樣本數據和預期的結果。你的代碼有多個錯誤,不管怎樣試圖修復它。導致這個錯誤的具體問題是'from'之前的逗號,但刪除它實際上不會修復查詢。 –
你需要做什麼? – Aleksej
Oracle沒有'BOOLEAN'數據類型。所以,除了所有的語法問題之外,在你解決它們之後,你將會遇到這個問題,而且你將無法輕易修復它。你需要決定'DesiredColumnName'(你真的確定這是你存儲在那裏的好列名嗎?)所以 - 你需要決定你是否希望該列是'NUMBER(1)'數據類型,允許(通過檢查約束)只保存值'0'和'1',或者只用'T'和''F''作爲'CHAR(1)',或者可能是'' Y''和'N''。 – mathguy