SQL转换前1行结果到列

时间:2015-04-18 13:12:32

标签: sql-server-2008

我有10列的表格,我的查询总是只给我1条记录。 现在我想将此单个记录转换为键值对。

Ex:SELECT * FROM dbo.Table 输出:

col1  col2  col3  col4 col5
============================ 
val1 val2   val2  val4 val5

期望输出如下

name    value  
==============
col1     val1
col2     val2
col3     val3
col4     val4
col5     val5

请建议如何执行此操作。

非常感谢

1 个答案:

答案 0 :(得分:2)

假设您的列是a)固定和b)相同类型,您可以使用UNPIVOT来实现此转换:

select name, value
from MyTable
unpivot
(
  name
  for Value in ([Col1], [Col2], [Col3], [Col4], [Col5])
) x;

SqlFiddle example here