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'表达式的结果与某些东西进行比较。 –