declare @range nvarchar(200)
declare @se nvarchar(300)
set @rangecn='compnyName'
set @se='南海' select * from table where compnyName like '%'+@se+'%' -- 这个写法可以有数据显示出来
select * from table where @rangecn like '%'+@se+'%' -- 加多一个参数之后,这个写法没有任何
数据显示,但也不报错我最终的目的当然是两个参数都要用上,请教写法
declare @se nvarchar(300)
set @rangecn='compnyName'
set @se='南海' select * from table where compnyName like '%'+@se+'%' -- 这个写法可以有数据显示出来
select * from table where @rangecn like '%'+@se+'%' -- 加多一个参数之后,这个写法没有任何
数据显示,但也不报错我最终的目的当然是两个参数都要用上,请教写法
select * from table where @rangecn like '%'+convert(nvarchar(300),@se)+'%'
declare @se nvarchar(300)
set @rangecn='compnyName'
set @se='南海'
print('select * from table where '+@rangecn+' like N''%'+@se+'%''' ) /*
select * from table where compnyName like N'%南海%'
*/
declare @se nvarchar(300)
declare @tsql nvarchar(300)
set @range='compnyName'
set @se='南海' --select * from table where compnyName like '%'+@se+'%' -- 这个写法可以有数据显示出来
set @tsql='select * from table where @rangecn like ''%'+@se+'%'''
--print @tsql exec (@tsql)
楼主意思是@rangecn参数代表列名,但是 select * from table where @rangecn like '%'+@se+'%' 没有查到数据,但也不报错,原因很简单,where后的条件永不成立。
翻译出来就是 select * from table where 'compnyName' like '%南海%',肯定不会有结果。请使用动态sql,见2楼