对于如下形式的Sql语句:select * from t1 where c1 = @c1 and c2 = @c2
如果只输入了@c1参数而没有输入c2参数,通常需要改写语句的查询条件:select * from t1 where c1 = @c1
这导致Sql语句必须动态生成,处理非常繁琐。后来经高人指点,将Sql语句改成如下形式:select * from t1 where @c1 in (c1, '') and @c2 in (c2, '')
这样当@c2为空时,语句等效为:select * from t1 where @c1 in (c1, '') and @c2 <> ''
呵呵,以后再也不用为动态生成查询条件而烦心了。
ps:括号中的表达式应根据查询字段的类型不同而改变。