1. 程式人生 > >Oracle中sum函式和case when聯合使用,報“ORA-00923: 未找到要求的 FROM 關鍵字”錯誤

Oracle中sum函式和case when聯合使用,報“ORA-00923: 未找到要求的 FROM 關鍵字”錯誤

在做行轉列的時候,一直報“ORA-00923: 未找到要求的 FROM 關鍵字”,找了好久的錯,現記錄下來以便以後檢視。

需求是這樣的:按系(系名)分段統計(成績小於 60 分,60-85 分, 85 分以上)“大學物理”課程各分數段的學生人數,及各系學生的平均成績。


附上出錯時的程式碼和結果,除去紅色部分標記的地方,一切執行正常


最後發現是別名用錯了,必須用雙引號來設定別名,真的是崩潰了,mysql寫多了,oracle都不會寫了。

最後,附上正確的程式碼

SELECT CNAME,DNAME,
SUM(CASE WHEN GRADE<60 THEN 1 ELSE 0 END) "60分以下",
SUM(CASE WHEN GRADE>60 and GRADE<85 THEN 1 ELSE 0 END) "60-85分",
SUM(CASE WHEN GRADE>85 THEN 1 ELSE 0 END) "85分以上",
AVG(GRADE) "平均分"
FROM SC INNER JOIN STUDENT ON SC.SNO=STUDENT.SNO
		INNER JOIN DEP ON STUDENT.DNO=DEP.DNO
		INNER JOIN COURSE ON COURSE.CNO=SC.CNO
where CNAME = '大學物理'
GROUP BY CNAME,DNAME