我可以将变量传递给选择语句作为 SQL Server 中的列名吗 [英] Can I pass variable to select statement as column name in SQL Server

查看:38
本文介绍了我可以将变量传递给选择语句作为 SQL Server 中的列名吗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能的重复:
SQL:根据变量选择动态列名

我有以下简单的 select 语句:

I have the following simple select statement:

 DECLARE @value varchar(10) 
 SET @value = 'intStep' 

 SELECT @value FROM dbo.tblBatchDetail 

我试过了

 SELECT CAST(@value AS varchar(10)) FROM dbo.tblBatchDetail 

我得到了一个 intstep

问题:我可以将变量作为列名传递给该语句吗?或者这样做的最佳方法是什么

QUESTION: can I pass variable as column name to this statement? Or what is the best way of doing this

我使用的是 SQL Server 2008 (9.0 RTM)

I'm using SQL Server 2008 (9.0 RTM)

这是一个存储过程

提前致谢

推荐答案

不能使用变量名绑定列或其他系统对象,需要动态sql

You can't use variable names to bind columns or other system objects, you need dynamic sql

DECLARE @value varchar(10)  
SET @value = 'intStep'  
DECLARE @sqlText nvarchar(1000); 

SET @sqlText = N'SELECT ' + @value + ' FROM dbo.tblBatchDetail'
Exec (@sqlText)

这篇关于我可以将变量传递给选择语句作为 SQL Server 中的列名吗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆