用动态: declare @s nvarchar(200) set @s =case when class =0 then 1,2,3 else class endexec('select * from 表 where class in ('+@s+')') 用判断: declare @class int if @class=0 select * from 表 where class in(1,2,3) else exec('select * from 表 where class='+@class+')')
declare @s varchar(1000) declare @class int set @class = 0 --1/2/3 select @s=case when @class = 0 then '1=1' else 'class='+cast(@class as int) end exec('select * from 表 where '+@s)
设此参数为P,则条件可以这么写where class*p=p*p declare @s varchar(1000) declare @class int set @class = 0 --1/2/3 select @s=case when @class = 0 then '1=1' else 'class'+cast(@class as int)'='+cast(@class as int) end exec('select * from 表 where '+@s)
declare @s nvarchar(200)
set @s =case when class =0 then 1,2,3 else class endexec('select * from 表 where class in ('+@s+')')
用判断:
declare @class int
if @class=0
select * from 表 where class in(1,2,3)
else
exec('select * from 表 where class='+@class+')')
declare @class int
set @class = 0 --1/2/3
select @s=case when @class = 0 then '1=1' else 'class='+cast(@class as int) end
exec('select * from 表 where '+@s)
declare @s varchar(1000)
declare @class int
set @class = 0 --1/2/3
select @s=case when @class = 0 then '1=1' else 'class'+cast(@class as int)'='+cast(@class as int) end
exec('select * from 表 where '+@s)