oracle中查询条件为空,查询全部的写法

问题描述:

框架限制,不能代码拼接sql,只能数据库写sql语句,查询条件为空,查询全部。

问题分析:

使用case when语句可以解决问题。

解决方案:

select *

  from empl a

where 1 = 1

  and a.hrstate = (case when '' = 'A' then 'A'

                      when '' = 'I' then 'I'

else  a.hrstate end)

  and a.hrstate = 'I';

升级版本:

select *

  from empl a

where 1 = 1

  and a.hrstate = nvl(a.hrstate,a.hrstate,'入参');

你可能感兴趣的:(oracle中查询条件为空,查询全部的写法)