如何在sql中使用pivot到多列

Posted

技术标签:

【中文标题】如何在sql中使用pivot到多列【英文标题】:How to use pivot in sql into multiple columns 【发布时间】:2021-05-28 01:53:52 【问题描述】:

有人可以帮助我使用 Pivot 处理 SQL 吗?

例如,我有一个如下所示的列表,其中包含 1 列:

我希望结果变成这样:

我尝试了 pivot 但我只有 1 行。我只需要多行。

【问题讨论】:

你为什么想要这样的输出,只是出于好奇,现实生活中的用例是什么? 【参考方案1】:

您可以使用窗口函数。在你的情况下,你有一个没有间隙的序列,所以你可以使用模算术:

    select max(case when units % 10 = 1 then units end),
           max(case when units % 10 = 2 then units end),
           . . .
           max(case when units % 10 = 0 then units end)
    from t
    group by ceiling(units / 10.0);

【讨论】:

以上是关于如何在sql中使用pivot到多列的主要内容,如果未能解决你的问题,请参考以下文章

带有 MIN() 和多列的 SQL PIVOT 表

MS SQL Pivot 来自多列的长数据

具有 INT 和 NVARCHAR 数据类型的多列的 SQL Pivot [重复]

如何在以下格式上使用 Pivot

如何在 SQL Server 中使用 Pivot

SQL转置全表