2017-08-28 45 views
1

我真的堅持這個問題,我認爲可以使用unpivot解決,但我真的不知道應該如何構建。 我有如下表:SQL Server 2008 Unpivot與給定的條件

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