请教在 sql server 查询分析器中调用参数的写法。

marklr 2013-02-22 01:45:42
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+'%' -- 加多一个参数之后,这个写法没有任何
数据显示,但也不报错

我最终的目的当然是两个参数都要用上,请教写法
...全文
346 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zhang7613022 2013-02-22
  • 打赏
  • 举报
回复
exec('select * from table where '+@rangecn+' like ''%'+@se+'%''' )
Kilin_Zhang 2013-02-22
  • 打赏
  • 举报
回复
引用 楼主 marklr 的回复:
declare @range nvarchar(200) declare @se nvarchar(300) set @rangecn='compnyName' set @se='南海' select * from table where compnyName like '%'+@se+'%' -- 这个写法可以有数据显示出来 select ……
楼主意思是@rangecn参数代表列名,但是 select * from table where @rangecn like '%'+@se+'%' 没有查到数据,但也不报错,原因很简单,where后的条件永不成立。 翻译出来就是 select * from table where 'compnyName' like '%南海%',肯定不会有结果。 请使用动态sql,见2楼
nme4 2013-02-22
  • 打赏
  • 举报
回复
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)
發糞塗牆 2013-02-22
  • 打赏
  • 举报
回复
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'%南海%'
*/
發糞塗牆 2013-02-22
  • 打赏
  • 举报
回复
你这个要用动态sql,参见2楼
marklr 2013-02-22
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
试试 select * from table where @rangecn like '%'+convert(nvarchar(300),@se)+'%'
这样也是无数据显示的
szm341 2013-02-22
  • 打赏
  • 举报
回复
exec('select * from table where '+@rangecn+' like ''%'+@se+'%''' )
發糞塗牆 2013-02-22
  • 打赏
  • 举报
回复
试试 select * from table where @rangecn like '%'+convert(nvarchar(300),@se)+'%'

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧