oraclesql中的Case
这个代码有什么问题oraclesql中的Case,sql,oracle,Sql,Oracle,这个代码有什么问题 select emp_id, emp_name from emp where case when :emp.designation_id = '008' then designation_id = '003' case是一个返回值的表达式。而大小写表达式以结束结尾。而case表达式返回有效类型 也许你打算: select emp_id, emp_name from emp where designation_id = (case when :emp.designat
select emp_id, emp_name
from emp
where case when :emp.designation_id = '008' then designation_id = '003'
case
是一个返回值的表达式。而大小写
表达式以结束
结尾。而case
表达式返回有效类型
也许你打算:
select emp_id, emp_name
from emp
where designation_id = (case when :emp.designation_id = '008' then designation_id = '003' end);
在不使用case
的情况下,表达此逻辑的更简单方法是:
where :emp.designation_id = '008' and designation_id = '003'
但你可能真的打算:
where (:emp.designation_id = '008' and designation_id = '003') or
(:emp.designation_id <> '008' and designation_id = :emp.designation_id)
其中(:emp.designation\u id='008'和designation\u id='003')或
(:emp.designation_id'008'和designation_id=:emp.designation_id)
看看这个问题