在企业应用程序开发中经常遇到,查询数据库的时候,查询的where条件可能不止一个,可能没有条件,也有可能至少一个或者多个条件,遇到这种情况,今天看到论坛上有人用C#的 if 语句拼接,这样解决可以是可以,不过显得太过累赘也没有必要,其实,一句固定的 sql 语句句型即可解决:
select*from t
where (a =@aor@aisnull)
and (b =@bor@bisnull)
and (c =@cor@cisnull)
-- 如果参数 @a、@b、@c 的某一个值为 null,则等同于无该条件
where (a =@aor@aisnull)
and (b =@bor@bisnull)
and (c =@cor@cisnull)
-- 如果参数 @a、@b、@c 的某一个值为 null,则等同于无该条件