------最佳解决方案-------------------- 试试:
if @starttime is null
select * from All_orders where ship=isnull(@ship,ship)
and company=isnull(@company,company) and trade=isnull(@trade,trade)
if @starttime is null
select * from All_orders where ship=isnull(@ship,ship)
and company=isnull(@company,company) and trade=isnull(@trade,trade) and orders_datetime
between @starttime and @endtime
select * from All_Orders where ship=isnull(@ship,ship) and company=isnull(@company,company) and trade=isnull(@trade,trade) and starttime=isnull( @starttime,starttime)and endtime=isnull( @endtime ,endtime)
go ------其他解决方案-------------------- 以前经常有if判断然后动态拼接的。
现在发哥这种就可以了,用isnull判断一下,为null的就不用处理了。
当然这样的话,如果没有传这个条件,而数据中又是null值的数据是取不出来的。 ------其他解决方案--------------------
这里面的@starttime 、@endtime 应该是 orders_datetime between @starttime and @endtime
查询两个时间段时间的数据