【问题标题】:Create a result with rows with same ids into columns in SQL Server在 SQL Server 中的列中创建具有相同 id 的行的结果
【发布时间】:2020-04-16 17:44:27
【问题描述】:

我有一个这样的 Microsoft SQL Server 数据库表:

我正在尝试以一种方式创建一个视图,将具有相同 from 的行组合在一起并且 Type AType B 值按列排列,如下所示:

我尝试使用几种分组方法和旋转,但我只能得到逗号分隔的值,如下所示:

在 SQL Server 中有没有一种方法可以有效地实现面向列的结果?

【问题讨论】:

  • 做一个 GROUP BY。使用 case 表达式进行条件计数。

标签: sql sql-server tsql group-by pivot


【解决方案1】:

你可以做条件聚合:

select
    [from],
    max(case when type = 'A' then val end) typeA,
    max(case when type = 'B' then val end) typeB
from mytable
group by [from]

请注意,from 是所有 SQL 方言中的保留字,因此不是列名的好选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2017-12-31
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多