sql 不用拼语句的解决方案

下面是 网上找到的不采用拼接sql字符串实现多条件查询的解决方案,记录下来供以后参考。

第一种写法是 感觉代码有些冗余 (不推荐)
if (@adddate is not null) and (@name <> '') 
      select * from table where adddate = @adddate and name = @name
else if (@adddate is not null) and (@name ='') 
      select * from table where adddate = @adddate
else if(@adddate is  null) and (@name <> '') 
      select * from table where and name = @name
else if(@adddate is  null) and (@name = '')
select * from table

第二种写法是

select * from table where (adddate = @adddate or @adddate is null) and (name = @name or @name = '')
第三种写法是

select * from table where
adddate = case @adddate is null then adddate else @adddate end,
name = case @name when '' then name else @name end

posted @ 2010-05-20 13:21  cct  阅读(189)  评论(0)    收藏  举报