我有两张桌子。 TableOne
,其中包含两列(name& value)。 TableTwo
可以包含N no. of columns
。 TableOne
中的行数将等于TableTwo
中的行数。
有关详细信息,请参阅下图。
我想要的是什么:
当我在TableTwo
上运行选择查询时,结果集应根据value
的{{1}}列选择列名称。我们需要将TableOne
的列名与TableTwo
中可用的行匹配,然后执行转换。
所以输出应该如下所示:
TableOne
答案 0 :(得分:0)
您可以使用动态sql根据第一个表中的值生成要执行的查询。这是一个例子:
Declare @dynamicSQL nvarchar(200)
SET @dynamicSQL ='SELECT'+(SELECT stuff((select','+ name +'AS'+ value 来自表1 for xml path('')),1,1,''))+'FROM Table2'
EXECUTE sp_executesql @dynamicSQL