一路查询语句

一道查询语句我现在有一条查询问题是这样的:假如一张表记录为tablea112现在查询条件为:a等于一个常量(如果

一道查询语句
我现在有一条查询问题是这样的:
假如一张表记录为
table
a  
1  
12 
现在查询条件为:a等于一个常量(如果a为空则查询出全部结果集,a不为空则查询满足等于这个常量的结果集)

我这样写
select * from table where a like '%@a%' @a为一常量
如果@a=空结果为
a
1
12
查出了所有结果,满足
而如果@a=1查询结果就为
a
1
12
显然不对。该怎么写好?

[解决办法]

SQL code
select * from table where a like nvl(@a, '%');
[解决办法]
三儿 你好