select * from table where compnyName like '%'+@se+'%' -- 这个写法可以有数据显示出来
select * from table where @rangecn like '%'+@se+'%' -- 加多一个参数之后,这个写法没有任何
数据显示,但也不报错
我最终的目的当然是两个参数都要用上,请教写法
...全文
3468打赏收藏
请教在 sql server 查询分析器中调用参数的写法。
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+'%' -- 加多一个参数之后,这个写法没有任何 数据显示,但也不报错 我
楼主意思是@rangecn参数代表列名,但是 select * from table where @rangecn like '%'+@se+'%' 没有查到数据,但也不报错,原因很简单,where后的条件永不成立。
翻译出来就是 select * from table where 'compnyName' like '%南海%',肯定不会有结果。
请使用动态sql,见2楼
declare @range nvarchar(200)
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)
declare @rangecn nvarchar(200)
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'%南海%'
*/