在SQL中透视数据并将其上载到目标表中



我正在处理一个存储过程,需要将表1中的记录更新到表2中。

表1:包含以下4列

----------------------------------------------|ID|TableName|ColumnName|值|----------------------------------------------|1|[UserDetails]|[FinalScore]|92||2|[UserDetails]|[FinalScore]|89||3|[UserDetails]|[FinalScore]|65||4|[UserDetails]|[FinalScore]|91||5|[UserDetails]|[FinalScore]|76||1|[EmployeDetail]|[ScoreData]|0.91|----------------------------------------------

UserDetails表

-----------------------------------------------------------|UserID|UserName|ContactNo|FinalScore|-----------------------------------------------------------|1|John G|+13888992342|0||2|Leonard J|+14581232342|0||3 |最大R |+171223992342|0||4|Robert H|+15688992122|0||5|Jimmy L|+132896782|0|-----------------------------------------------------------

对于大量数据(30000到60000(记录,需要将表1中的所有数据加载到相应的目标表中。

表1包含目标表(表1中的TableName列(中的ID(表1的ID列(和FinalScore(图1中的ColumnName列(,其中需要加载值(图1的value列(。

SP执行后UserDetails表的最终结果:

-----------------------------------------------------------|UserID|UserName|ContactNo|FinalScore|-----------------------------------------------------------|1|John G|+13888992342|92||2|Leonard J|+1481232342|89||3 |最大R |+171223992342 | 65||4|Robert H|+15688992122|91||5|Jimmy L|+132896782|76|-----------------------------------------------------------

我不知道如何将数据从"table1"加载到批量数据的目标表(userdetails表(中,因为循环中的更新查询需要很长时间才能完成。

它不是你想要的枢轴,而是一个简单的连接:

select 
a.userid, a.contactno, b.finalscore
from UserDetails a
join table1 b on a.id = b.id

或者,如果您想在不创建新表的情况下更新旧表,您可以update join

使用联接的SQL更新查询

最新更新