开发者

Transpose row values to columns ( join table with a bag of key value pairs in T-SQL)

I have two tables, table1 ( Id, date, info1) table2 ( Id, date, nvarchar(50) Key, nvarchar(50) Value)

I would like to join these tables and obtain rows where each value in the Key column is a new column, and the values in the value table are the data in the rows.

Example:

table1 row:

1, 2010-01-01, 234

table2 row:

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

The result desired is a row like:

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

Where the column headers are (Id, date, info1, TimeToProcess, ProcessingStatus)

This transposition looks like it works similarly to PIVOT but I could not get it to work -- I suspect -- due to the nvarchar(50) type of the Key, Value columns and the fact that I am forced to use an aggregate function when in fact I do not need it.

I could use inner joins to achieve this but th开发者_开发技巧e only way I know how to do it would take 1 inner join per Key which in my case amounts to 6 inner joins as that's how many metrics I have.

How can I do this?


You're on the right track with PIVOT. You can PIVOT on a string value. Use the MIN or MAX aggregate function.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜