首页 文章

将行值转置为列(在T-SQL中使用一包键值对连接表)

提问于
浏览
0

我有两个表,table1(Id,date,info1)table2(Id,date,nvarchar(50)Key,nvarchar(50)Value)

我想连接这些表并获取行,其中Key列中的每个值都是一个新列,value表中的值是行中的数据 .

例:

table1行:

1, 2010-01-01, 234

table2行:

1, 2010-01-01, 'TimeToProcess', '15'
1, 2010-01-01, 'ProcessingStatus', 'Complete'

所需的结果如下:

1, 2010-01-01, 234, '15', 'Complete'

列 Headers 是(Id,date,info1,TimeToProcess,ProcessingStatus)

这个转置看起来像它与PIVOT类似,但我无法让它工作 - 我怀疑 - 由于Nvarchar(50)类型的Key,Value列以及我被迫使用聚合函数的事实事实上我不需要它 .

我可以使用内连接来实现这一点,但我知道如何做到这一点的唯一方法是每个Key需要1个内部连接,在我的情况下,这相当于6个内部连接,因为这是我有多少指标 .

我怎样才能做到这一点?

1 回答

  • 0

    你在 PIVOT 的正确轨道上 . 你 can PIVOT 对一个字符串值 . 使用 MINMAX 聚合函数 .

相关问题