2017-08-28 5 views
1

ピボットを使用して解決できると思われるこの問題は本当に固まっていますが、どのように構築する必要があるのか​​わかりません。 私は、次の表を持っている:SQL Server 2008指定条件でピボット解除する

TableName  ColumnName  ColumnValue 
---------------------------------------------- 
Table1   ColumnA   1 
Table1   ColumnB   2 
Table1   ColumnC   3 
Table2   ColumnA   4 
Table2   ColumnD   5 

私は次のような結果を取得したいと思います:

TableName  Column1   Column2  ColumnAValue  ColumnBValue 
--------------------------------------------------------------------------------- 
Table1   ColumnA   ColumnB  1     2 
Table2   ColumnA   ColumnD  4     5 

を私は、次の表を与えています:

TableName  Column1  Column2 
--------------------------------------- 
Table1   ColumnA  ColumnB 
Table2   ColumnA  ColumnD 

答えて

2

私が正しく理解していれば... 「与えられたテーブル」は、KEY

です。の

Select G.* 
     ,ColumnAValue = A.ColumnValue 
     ,ColumnBValue = B.ColumnValue 
From GivenTable G 
Left Join YourTable A on G.TableName=A.TableName and G.Column1=A.ColumnName 
Left Join YourTable B on G.TableName=B.TableName and G.Column2=B.ColumnName 

戻り

TableName Column1 Column2 ColumnAValue ColumnBValue 
Table1  ColumnA ColumnB 1    2 
Table2  ColumnA ColumnD 4    5