我现在有一条查询问题是这样的:
假如一张表记录为
table
a
1
12
现在查询条件为:a等于一个常量(如果a为空则查询出全部结果集,a不为空则查询满足等于这个常量的结果集)我这样写
select * from table where a like '%@a%' @a为一常量
如果@a=空结果为
a
1
12
查出了所有结果,满足
而如果@a=1查询结果就为
a
1
12
显然不对。该怎么写好?
假如一张表记录为
table
a
1
12
现在查询条件为:a等于一个常量(如果a为空则查询出全部结果集,a不为空则查询满足等于这个常量的结果集)我这样写
select * from table where a like '%@a%' @a为一常量
如果@a=空结果为
a
1
12
查出了所有结果,满足
而如果@a=1查询结果就为
a
1
12
显然不对。该怎么写好?
功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。
like '%1%' ,怎么可能 结果会有 a?
select *
from (select 'a' a
from dual
union all
select '1' a
from dual
union all
select '12' a from dual) t
where upper(t.a) like '%'||upper(nvl('1', 'NA'))||'%'