【问题标题】:Microsoft SQL Server PIVOT/UNPIVOT questionsMicrosoft SQL Server PIVOT/UNPIVOT 问题
【发布时间】:2021-12-18 22:35:31
【问题描述】:

我有以下sn-ps:

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]

返回如下:

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 但如何??

谢谢!

【问题讨论】:

  • 如果它对某人有帮助,您可以在 Oracle 中为此使用的查询中 edit 吗?

标签: sql sql-server pivot unpivot


【解决方案1】:

你可以这样做:

select Cols from [SINGLE_COL]
unpivot
(
  Cols
  for col in (Col1, Col2, Col3)
) u;

【讨论】:

  • 不,您的查询仅返回 COL1、COL2、COL3、COL1、COL2、COL3。你真的运行了你的查询吗?谢谢。
  • @rtn60350 我编辑了,你可以再看看
  • 是的,它现在可以工作了。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多