【请教】变量作为字段名进行查询并输出

hgwyl 2018-05-05 11:52:58
请教下个sql语句问题。

select @输出变量=@变量X from 表

其中,@变量X=A,A是表中字段名,该字段值是123

我直接这样执行,输出时,@输出变量是“字段名”A,而不是字段A的值123

好像有点绕……

求助
...全文
701 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2018-05-05
  • 打赏
  • 举报
回复
USE tempdb
GO
SELECT 'abc' AS [123] INTO Tmp1

GO

DECLARE @Col NVARCHAR(1000)='123'
EXEC('select ['+@Col+'] from Tmp1')
/*
123
abc
*/
卖水果的net 版主 2018-05-05
  • 打赏
  • 举报
回复

-- 创建一个测试表,并写入一条记录
select 100 id, '这是一个字符串' name into test
go
select * from test
go
declare @sql nvarchar(300), @colname varchar(10), @name varchar(30)
set @colname = 'name'
set @sql = 'select @name = ' + @colname + ' from test where id = 100'
exec sp_executesql @sql, N'@name varchar(30) out', @name out
print '查询结果:' + @name
go

drop table test 
go


(1 行受影响)
id          name
----------- --------------
100         这是一个字符串

(1 行受影响)

查询结果:这是一个字符串

34,593

社区成员

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

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