aw511(点点星灯) 说的是正确的!你稍微变通一下DECLARE @sB varchar(10)SET @sB = 'all' --这里赋什么值都可以SELECT * FROM TestInfo WHERE sa(你所要传入的值) = @sB or 'all'='all' --这里就屏蔽了sA = @sB这个条件
如果你是这种不定的情况,最好用动态语句, 避免当查询所有记录时带来的检索,影响 查询速度. 方法一 if (@sB<>'') or (@sB is not NUll) SELECT * FROM TABLE_A WHERE sA = @sB else SELECT * FROM TABLE_A 方法二:DECLARE @sB varchar(10) Declare @Sql nvarchar(4000)if (@sB<>'') or (@sB is not NUll) set @Sql=' Where sA='''+@sB+'''' else set @Sql=''exec(' SELECT * FROM TABLE_A '+@Sql)--还有更灵活的做各种条件...
FROM TestInfo
WHERE
sa(你所要传入的值) = @sB or 'all'='all' --这里就屏蔽了sA = @sB这个条件
避免当查询所有记录时带来的检索,影响
查询速度.
方法一
if (@sB<>'') or (@sB is not NUll)
SELECT *
FROM TABLE_A
WHERE sA = @sB
else
SELECT *
FROM TABLE_A 方法二:DECLARE @sB varchar(10)
Declare @Sql nvarchar(4000)if (@sB<>'') or (@sB is not NUll)
set @Sql=' Where sA='''+@sB+''''
else
set @Sql=''exec(' SELECT * FROM TABLE_A '+@Sql)--还有更灵活的做各种条件...
这是存储过程中的一段
@sB是有可能有值也可能没值的。我要的是在它的有值时根据它的条件可以查询,没有值时可以查询出全部。skyskywind(寂寞风) 、aw511(点点星灯)你们都说那种方法可以,但我不明白你们是怎么来控制这个条件的。WangZWang(阿来) 因为我的代码相当长,不可能用你那种方法的