如何在SQL显示中重命名列名而不进行硬编码

时间:2016-06-07 18:01:06

标签: sql

目前,如果我想将列名重命名为其他名称,我会这样做

Select column as "what I want to name it" 
from table1

但是,我不想对列名进行硬编码,因此我尝试设置变量

set @var = "some name"
select column as @var 
from table1

但是这给了我语法错误,我做错了什么?所有帮助表示感谢,谢谢。

2 个答案:

答案 0 :(得分:1)

SQL处理器不会那样工作。变量评估在表达式中发生;它不能用于构造输出。

如果你真的需要,你可以使用动态SQL,但它就像杀死一只生锈的电锯,它的刀片上没有防护装置。最好不要在SQL中执行此操作。

正如@juergend在评论中所说,动态SQL的形式取决于您使用的SQL引擎:Oracle,SQL Server,mySQL等。

答案 1 :(得分:0)

在SQL Server中如何使用动态SQL

DECLARE @columnName VARCHAR(10)
DECLARE @sql VARCHAR(100)

SET @columnName = 'Column1'

SET @sql = 'SELECT 1 AS ' + @columnName

EXEC (@sql)