目前,如果我想将列名重命名为其他名称,我会这样做
Select column as "what I want to name it"
from table1
但是,我不想对列名进行硬编码,因此我尝试设置变量
set @var = "some name"
select column as @var
from table1
但是这给了我语法错误,我做错了什么?所有帮助表示感谢,谢谢。
答案 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)