22,301
社区成员




--改下里面这句就好了
select @FielsStr=@FielsStr+'cast(isnull('+name+','''') as varchar)+'',''+' from syscolumns where id=object_id('表AAA')
--字段数动态编号,且表的字段值都是varchar时,可以这么做,以查值aa为例
set nocount on
declare @FielsStr varchar(1000),@Sql varchar(1000)
set @FielsStr=''
select @FielsStr=@FielsStr+name+'+'',''+' from syscolumns where id=object_id('表AAA')
select @FielsStr=substring(''',''+'+@FielsStr,1,len(@FielsStr)+3),
@sql='select * from 表AAA where charindex('',aa,'','+@FielsStr+')>0'
exec(@sql)
select * from 表AAA where charindex('aa',a+','+b+','+c)>0
--如果要查'aa'
select * from 表AAA where charindex('aa',a+b+c)>0
--当不知道表的字段数,且表的字段值都是varchar时,可以这么做,以查值aa为例
declare @FielsStr varchar(1000),@Sql varchar(1000)
set @FielsStr=''
select @FielsStr=@FielsStr+'+'+name from syscolumns where id=object_id('表AAA')
select @FielsStr=substring(@FielsStr,2,len(@FielsStr)),
@sql='select * from 表AAA where charindex(''aa'','+@FielsStr+')>0'
exec(@sql)
--如果要查'aa'
select * from 表AAA where charindex('aa',a+b+c)>0