在MS SQL SERVER中将少量列的1行切换为1列,几行

时间:2010-03-23 21:56:12

标签: sql tsql

我有一行有很多列:

COL1 | COL2 | COL3 | ...

我希望有一列有很多行,例如:

COL1
COL2
COL3
..

3 个答案:

答案 0 :(得分:1)

UNPIVOT如果您使用的是版本2005 +

http://www.tsqltutorials.com/unpivot.php

答案 1 :(得分:1)

如果是SQL Server 2000或更低版本......

如何在SQL Server中旋转表:http://support.microsoft.com/kb/175574

答案 2 :(得分:0)

看看UNPIVOT

CREATE TABLE Table1 (col1 INT, col2 INT, col3 INT, col4 INT);
INSERT INTO Table1 (col1, col2, col3, col4) VALUES (1,2,3,4);

SELECT col, value FROM Table1
UNPIVOT (value FOR col IN (col1, col2, col3, col4)) AS unpvt

结果:

col  value
col1 1
col2 2
col3 3
col4 4

如果您不想知道哪个值来自哪个列,请仅选择value

SELECT value FROM Table1
UNPIVOT (value FOR col IN (col1, col2, col3, col4)) AS unpvt