create table test(id varchar(10),name1 varchar(10),name2 varchar(10),name3 varchar(10))
insert test select '01','张三',null,null
union all select '02',null,'张三',null
union all select '03',null,null,'张三'
declare @s varchar(8000)
set @s=''
select @s=@s+'or '+name+'=''张三'''from syscolumns where id=object_id('test') and colid>1
select @s='select * from test where '+stuff(@s,1,2,'')
exec(@s)