我'ORA-00905: missing keyword'
在执行此查询时遇到错误,该错误是case语句。.请找到一个解决方案,请在下面找到查询
SELECT Count(*)
FROM c_bpartner
WHERE c_bpartner.issummary = 'N'
AND c_bpartner.isactive = 'Y'
AND c_bpartner.isactive = 'Y'
AND c_bpartner.issummary = 'N'
AND ( CASE
WHEN 135 NOT IN (SELECT c_doctype_id
FROM c_doctype
WHERE docsubtypeso IN( 'OB', 'ON' )) THEN
c_bpartner.isprospect = 'N'
ELSE c_bpartner.isprospect = 'Y'
OR c_bpartner.isprospect = 'N'
END )
AND c_bpartner.iscustomer = 'Y'
AND c_bpartner.isprospect = 'N'
我相信问题在于您CASE
在该WHERE
条款中的陈述。您正在尝试应用可选的过滤器,但CASE
不允许您对查询应用动态更改。而是使用CASE
投射行特定的值,该值将在谓词中使用,例如,假设“ Y”和“ N”是的唯一可能isprospect
,请尝试重写情况,如下所示:
AND c_bpartner.isprospect =
( CASE
WHEN 135 NOT IN (SELECT c_doctype_id
FROM c_doctype
WHERE docsubtypeso IN( 'OB', 'ON' ))
THEN
'N'
ELSE
c_bpartner.isprospect
END
)
返回c_bpartner.isprospect
在ELSE
应保证匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句