有没有一种方法可以仅在未完成输入时使用IF显示NULL值?

时间:2019-04-24 13:30:34

标签: sql

我需要有关IF陈述或类似陈述的帮助

这是为了让我从系统中查询查询,但在某些情况下EXP_RCPT_NO没有值,我需要一个代码让我在EXP_RCPT_NO中搜索特定值而不显示空结果,但同时显示当我仅搜索il.lic_no

时为空结果
select il.lic_no,
       EXP_RCPT_NO
   from inv_lic il
 where il.lic_no like nvl ('&Licens', '%')
   and EXP_RCPT_NO like nvl ('&Order', '%')

如果我删除最下面的行,它将起作用,但随后它将删除搜索EXP_RCPT_NO的选项

2 个答案:

答案 0 :(得分:0)

问题令人困惑。是Oracle吗?我不完全理解您的问题,但是类似这样的事情? nvl与SQL Server的ISNULL相同。通常,将其放在您的专栏上。

select il.lic_no,
       EXP_RCPT_NO
   from inv_lic il
 where nvl(il.lic_no, 'Licens') like '%Licens%'
   OR nvl(EXP_RCPT_NO, 'Order') like '%Order%'

答案 1 :(得分:0)

我想你想要

select il.lic_no, il.EXP_RCPT_NO
from inv_lic il
where il.lic_no like coalesce('&Licens', '%') and
      (il.EXP_RCPT_NO like '&Order' or '&Order' is null);

两种情况下您可能都希望使用or逻辑,但是您只询问了第二种情况。