将多列与列插入单行

时间:2015-04-02 22:09:28

标签: sql sql-server

我正在尝试编写一个查询,以便以这种格式将一组行复制到另一个表

Table 1
ColumnName     ColumnValue    RowId

Column1              Value1           1
Column2              Value2           1
Column3              Value3           1
Column1              Value4           2
Column2              Value5           2
Column3              Value6           2
Column1              Value7           3
Column2              Value8           3
Column3              Value9           3

Table2
Column1         Column2     Column3  
Value1          Value2       Value3      
Value4          Value5       Value6
Value7          Value8       Value9         

这里基本上表1是输入,表2是我正在尝试的输出。我使用了数据和行号,但都没有用。

实现此目的的插入查询是什么。这里表1中rowId 1的所有行将形成一行table2。

1 个答案:

答案 0 :(得分:1)

select rowID, 
       max(case when columnName = 'Column1' then value else null end) as column1,
       max(case when columnName = 'Column2' then value else null end) as column2,
       max(case when columnName = 'Column3' then value else null end) as column3
from table1
group by rowID