如何在SQL显示中重命名列名而无需硬编码
目前,如果我想将列名重命名为其他名称,我会这样做如何在SQL显示中重命名列名而无需硬编码,sql,Sql,目前,如果我想将列名重命名为其他名称,我会这样做 Select column as "what I want to name it" from table1 但是,我不想硬编码列名,所以我尝试设置一个变量 set @var = "some name" select column as @var from table1 但这给了我语法错误,我做错了什么?谢谢大家的帮助 SQL处理器就是不能那样工作。变量求值发生在表达式中;它不能用于构建输出 如果必须的话,您可以使用动态SQL,但这就像用生
Select column as "what I want to name it"
from table1
但是,我不想硬编码列名,所以我尝试设置一个变量
set @var = "some name"
select column as @var
from table1
但这给了我语法错误,我做错了什么?谢谢大家的帮助 SQL处理器就是不能那样工作。变量求值发生在表达式中;它不能用于构建输出 如果必须的话,您可以使用动态SQL,但这就像用生锈的链锯杀死一只苍蝇,锯片上没有防护装置。最好不要在SQL中这样做
正如@juergend在一篇评论中所说,动态SQL的形式取决于您使用的SQL引擎:Oracle、SQL Server、mySQL等。这里介绍如何在SQL Server中使用动态SQL
DECLARE @columnName VARCHAR(10)
DECLARE @sql VARCHAR(100)
SET @columnName = 'Column1'
SET @sql = 'SELECT 1 AS ' + @columnName
EXEC (@sql)
为此,您需要动态SQL。如何做到这一点在很大程度上取决于您使用的数据库引擎。为什么不希望对列进行硬编码?