SQLSERVER更优化的判断条件查询方法测试
--更优化的判断条件查询方法测试
--==========create test ===============
create table xjj (col varchar(50))
insert into xjj select 'a'
union all select 'b'
union all select 'c'
declare @p varchar(50)
set @p = ''--change this value (a or b or c or '') to test.
---------------------------------
--==========method 1==========
if @p=''
select * from xjj
else
select * from xjj where col=@p
--==========method 2==========
declare @sql varchar(500)
set @sql='select * from xjj'
if @p<>''
set @sql = @sql+' where col='''+@p+''''
execute(@sql)
--==========method 3==good!!========
select * from xjj where (case when @p<>'' then col else @p end)=@p
--drop table
drop table xjj
留印备忘,顺便散点分!