Microsoft SQL 服务器 PIVOT/UNPIVOT 问题
Microsoft SQL Server PIVOT/UNPIVOT questions
我有以下片段:
CREATE TABLE [SINGLE_COL]
(
[COL1] [varchar](50) NULL,
[COL2] [varchar](50) NULL,
[COL3] [varchar](50) NULL
)
GO
INSERT INTO [SINGLE_COL]
VALUES ('A', 'B', 'C')
GO
INSERT INTO [SINGLE_COL]
VALUES ('D', 'E', 'F')
GO
select * from [SINGLE_COL]
它returns像这样:
COL1 COL2 COL3
A B C
D E F
我想将所有行变成单列,如下所示:
COL
A
B
C
D
E
F
这是我在 oracle 中所做的:
SELECT col FROM SINGLE_COL
UNPIVOT (col FOR col1 IN (col1, col2, col3));
在 Oracle 中非常简单易行,但在 MS SQL Server 中则不然!
我认为我必须使用函数 UNPIVOT,但是如何使用呢??
谢谢!
你可以这样做:
select Cols from [SINGLE_COL]
unpivot
(
Cols
for col in (Col1, Col2, Col3)
) u;
我有以下片段:
CREATE TABLE [SINGLE_COL]
(
[COL1] [varchar](50) NULL,
[COL2] [varchar](50) NULL,
[COL3] [varchar](50) NULL
)
GO
INSERT INTO [SINGLE_COL]
VALUES ('A', 'B', 'C')
GO
INSERT INTO [SINGLE_COL]
VALUES ('D', 'E', 'F')
GO
select * from [SINGLE_COL]
它returns像这样:
COL1 COL2 COL3
A B C
D E F
我想将所有行变成单列,如下所示:
COL
A
B
C
D
E
F
这是我在 oracle 中所做的:
SELECT col FROM SINGLE_COL
UNPIVOT (col FOR col1 IN (col1, col2, col3));
在 Oracle 中非常简单易行,但在 MS SQL Server 中则不然!
我认为我必须使用函数 UNPIVOT,但是如何使用呢??
谢谢!
你可以这样做:
select Cols from [SINGLE_COL]
unpivot
(
Cols
for col in (Col1, Col2, Col3)
) u;