存储过程中如何根据参数是否为空执行不同的select??

存储过程中如何根据参数是否为空执行不同的select??
假设表T1,其中有A1,A2,D1,D2等多个字段,A1,A2为varchar型,D1,D2为日期型。 
传来四个参数,@A1,@A2,@D1,@D2,如果为空,则不必理会;如果不为空,则加到条件子句中。

@A1,@D1不空为,那么。
要执行select * from t1 where
a1=@A1 and d1>=@D1
如果@A2,@D2不为空,则执行 select * from t1 where
A2=@A2 and d2 <=@D2
当然,这四个参数是不固定有没有的,可能这次查询没有,下次查询就有了。
也可能同时都为空,那么就执行select * from t1即可。
请问这样的存储过程应该怎么写?
谢谢。

--这样应该就没问题了。
select * from tb
where A1=isnull(@A1,A1)
and  A2=isnull(@A2,A2)
and D1=isnull(@D1,D1)
and D2=isnull(@D2,D2)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值