您的位置:首页 > 其它

多条件查询不用拼字符串的解决办法

2009-11-06 08:14 260 查看
在SQL查询语句中,有时候会传入很多参数作为where子句的条件进行查询,但不是每个参数都是必须的,可能有的参数为null,按照常规写法

select * from tbname where f1 = @f1 and f2 = @f2 and f3 = @f3

假如@f3是null,得到什么结果可想而之,为了解决这个问题,可以采取变相的解决办法,设定如果某个参数为null,就将其转变成另一个值。

在SQL语法中,有一种写法是

select * from tbname where 1 = 1

查询结果会给人以灵感,这里where子句有条件,但查询的结果跟没有条件一样,也就是说,这里的条件“形同虚设”,这样就解决了如果参数为null的问题。可以写成

select * from tbname where f1 = isnull(@f1,f1) and f2 = isnull(@f2,f2) and f3 = isnull(@f3,f3)

假如@f3为null,就会得到

select * from tbname where f1 = isnull(@f1,f1) and f2 = isnull(@f2,f2) and f3 = f3

得到的结果正是你想要的。完。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐