我正在使用 Oracle SQL Developer。對 SQL 來說真的很陌生,不知道為什么我會收到這個錯誤。
錯誤:
ORA-00905:缺少關鍵字 00905。00000 -“缺少關鍵字” *原因:
*操作:行錯誤:1 列:128
SELECT r.ROOM_ID, w.HEAD_NURSE, w.WARD_NAME, p.LEAVING_DATE, count(CASE p.PATIENT_ID when to_date('2022-01-07', 'YYYY-MM-DD') < p.LEAVING_DATE then 1 else null END) AS No_Of_Patients_In_Room
FROM ROOM r, WARD w, PATIENT_DETAILS p
WHERE r.HEAD_NURSE = 'Some Nurses Name' AND w.WARD_NAME = 'Some Ward Name' AND p.ROOM_ID = r.ROOM_ID
group by r.ROOM_ID, w.HEAD_NURSE, w.WARD_NAME, p.LEAVING_DATE;
當 LEAVING_DATE 在指定日期之后時,它應該只計算 PATIENT_ID。我可以洗掉已經超過日期的 LEAVING_DATE 的資料,但我仍然想知道是什么導致了這個錯誤。
uj5u.com熱心網友回復:
該CASE語法有2種形式。
不要混合它們。
select n , case n when 1 then 'A' when 2 then 'B' else 'C' end as form1 from (select 1 as n from dual) qN | 表格1 -: | :---- 1 | 一個
select n , case when n=1 then 'A' when n>1 then 'B' else 'C' end as form2 from (select 2 as n from dual) qN | 表格2 -: | :---- 2 | 乙
select n , case n when n=1 then 'A' when n>1 then 'B' else 'C' end as badmix from (select 3 as n from dual) qORA-00905: 缺少關鍵字
db<>在這里擺弄
所以這是錯誤的:
CASE p.PATIENT_ID when to_date('2022-01-07', 'YYYY-MM-DD') < p.LEAVING_DATE then 1 else null END
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/408370.html
標籤:
上一篇:如何保持嵌套SQL陳述句?
