0
爲什麼該查詢返回缺少關鍵字的錯誤與Oracle數據庫:缺少關鍵字例外甲骨文
注:區分大小寫狀態被用來選擇一個合適的地方語句的WHERE條件。這是一個我正在遷移到Oracle的mysql查詢。
SELECT OFFICE_TYPE_CD, OFFICE_TYPE_DESC
FROM m_office_types
WHERE CASE
WHEN OFFICE_TYPE_CD IN (7)
THEN
office_level_cd < (SELECT DISTINCT office_level_cd
FROM m_office_types
WHERE office_type_cd = 7
AND RECORD_STATUS <> 'D')
ELSE
office_level_cd <= (SELECT DISTINCT office_level_cd
FROM m_office_types
WHERE office_type_cd = 7
AND RECORD_STATUS <> 'D')
END
AND RECORD_STATUS = 'C'
AND state_cd = 27
AND OFFICE_NAME IS NOT NULL
保健佳品模式請! –
'CASE'應該做什麼?這表示'如果OFFICE_TYPE_CD IN(7)'CASE'值應該是'office_level_cd <(...)'這是沒有意義的。試着解釋你需要用這個查詢來做什麼 – Aleksej
由於'case'表達式的使用不正確。由於您將比較運算符放在case表達式的'then'子句中,因此會引發'missing keyword'錯誤。當你修復這個'無效的關係運算符'時會被引發,因爲在'where'子句中你必須將'case'表達式的結果與某些東西進行比較。 –