TSQL Un-pivot 2列

时间:2014-06-04 13:10:00

标签: sql tsql sql-server-2012 unpivot

下午好堆栈流。

我需要帮助转动一些数据。我试过在互联网上查找如何做但没有运气。

我有4列(a,b,c,d)和一行数据。

我希望数据有2列4行。

a b c d
1 2 3 4

成为

a 1
b 2
c 3
d 4

SQL fiddle here http://sqlfiddle.com/#!6/68b32/280

感谢您的时间

2 个答案:

答案 0 :(得分:1)

SELECT letter, val
FROM @t
unpivot(val for letter in (a,b,c,d)) as unpvt

SQL Fiddle

答案 1 :(得分:1)

您正在寻找的是

试试这个 - 在sql-server-2012中测试:

DECLARE @t TABLE
(
    a int,
    b int,
    c int,
    d int
) 

INSERT INTO @t
SELECT 1,2,3,4

select 
  unpvt.colName
, unpvt.colVal
from (
   select
     a
   , b
   , c
   , d
   from @t
) p
UNPIVOT (colVal FOR colName IN (a, b, c, d) ) as unpvt

结果:

colName colVal
a   1
b   2
c   3
d   4