我需要在表中执行动态数据透视的更新。因此列和列名称的数量是动态的。真的让我感到困惑,因为我可能需要嵌套的动态SQL,但是我找不到如何使它工作。
到目前为止,我发现了如何创建一个包含所有更新查询的表,但我无法找到如何从表中运行查询。创建包含所有更新查询的表的查询是:
SELECT
N'UPDATE #Pivot SET [' + t1.a + '] = ''' + t2.b + ''' WHERE #Pivot.y = ''' + t1.x + '''' AS Query
FROM t1
INNER JOIN t2
on t2.v = t1.v
数据透视表中的列标题来自t1.a,因此我使用t1.a来检索列标题。 Pivot.y是数据透视表的非旋转列,也来自t1。
也许这不是最简单的方式,有人知道更好的方法吗?也许这很容易,但我对动态查询很新。在此先感谢您的帮助!