Sql 如何通过与其他resultset值进行比较来更改resultset中的列名

Sql 如何通过与其他resultset值进行比较来更改resultset中的列名,sql,sql-server,Sql,Sql Server,我们是否可以将select查询结果存储在一个变量中,并迭代该变量的每一项 select labelname from controlType --gives me labelname ---------- Employee Name Employee Address IsActive DOB ---------- 我有另一张桌子,目标是谁 雇员姓名, 雇员地址:, 伊萨克维, 多布 您可以看到,除了空格,这些列与我从resultset获得的列相同。我想选择targetTable的所有列,其格式

我们是否可以将select查询结果存储在一个变量中,并迭代该变量的每一项

select labelname from controlType
--gives me
labelname
----------
Employee Name
Employee Address
IsActive
DOB
----------
我有另一张桌子,目标是谁 雇员姓名, 雇员地址:, 伊萨克维, 多布

您可以看到,除了空格,这些列与我从resultset获得的列相同。我想选择targetTable的所有列,其格式名称与resultset中相同。例如,eg应该使用“员工姓名”而不是EmployeeName

这只是一个例子。在我当前的场景中,我不知道有多少列以及resultset是什么。我的想法是将resultset存储在变量中,并在选择目标表的列时执行一些逻辑操作。如何做到这一点。请帮忙

使用表变量存储需要选择的列。这里有一个关于表变量的很好的教程

然后通过循环表变量中的列名动态构造SQL语句


最后,使用EXEC或sp_executesql执行刚才生成的动态sql。这里有一个例子:

不需要任何变量,您只需使用以下查询并在Temp变量中插入所有记录,然后循环遍历即可

Select Id,labelname Into #Temp from controlType
Declare @Id int

While (Select Count(*) From #Temp) > 0
 Begin

Select Top 1 @Id = Id From #Temp

--insert your logic here

Delete #Temp Where Id = @Id

End

我不明白TargetTable中的格式化列是什么意思?我如何将列EmpName更改为“Emp Name”这很奇怪,你怎么知道将空格放在哪里?目标表中的EmpName和答案临时表中resultset中的“Emp Name”。请把我的全部问题通读一遍。这不仅是关于迭代,而且是通过比较专栏的文本来使用。对不起,但我相信我不能完全理解您的要求