我有两个临时表:temp1和temp 2.
temp 1是
Reg Key | Player Name | Age
----------------------------
1 | Null | Null
2 | Null | Null
3 | Null | Null
临时2是
Reg Key | Question Name | value
----------------------------
1 | Player Name | Ronaldo
2 | Player Name | Zedan
1 | Age | 35
2 | Age | 38
在临时1中,列名称是动态的,除了[Reg Key],例如我需要在临时1中使用[Reg Key] 1更新行,并使用' Ronaldo'从表格2中得出35。
我曾经循环从temp 2获取值并更新temp 1,但表temp 2中的记录现在超过5 000,所以我尝试创建UPDATE
查询,但是我不知道如何在运行时获取列名称。
答案 0 :(得分:0)
听起来像枢轴可以解决这个问题:
select 1 as regkey, 'Player Name' as Question_name, 'Ronaldo' as value into #temp2
union all select 2, 'Player Name', 'Zedan'
union all select 1, 'Age', '35'
union all select 2, 'Age', '38'
Select
regkey
, [Player Name]
, [Age]
From #temp2
Pivot (max(value) for Question_Name in ([Player Name], [Age])) as pvt