oracle中where条件后输入条件为空的if,else语句

selectfacfromnew_plwherefac='"+txt_fac+"'现在txt_fac为空,执行fac=txt_fac;不为空执行,facin(select... select fac from new_pl where fac = '"+txt_fac+"'
现在 txt_fac 为空,执行fac=txt_fac;不为空执行 ,fac in (select *from table )。请问用oracle怎么写
展开
 我来答
橙门听X
2019-05-11 · TA获得超过2572个赞
知道大有可为答主
回答量:4669
采纳率:88%
帮助的人:717万
展开全部


你是不是描述的有错误?怎么两次都是username不为空?

估计可以有好几个:

1、可以用union all

select * from table where 1=1 and (username is not null and instr(username , '李四') > 0) 
union all
select * from table where username is null

2、你写的这个好像or and的逻辑有问题,可以改改

select * from table where 1=1 
and ((username is not null and instr(username , '李四') > 0) or (username is null))

理解错误的话请纠正




推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式