首页 >数据库 >mysql教程 >如何在没有聚合函数的情况下执行 T-SQL PIVOT 操作?

如何在没有聚合函数的情况下执行 T-SQL PIVOT 操作?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-20 09:51:09967浏览

How to Perform a T-SQL PIVOT Operation Without Aggregate Functions?

无需聚合函数的 T-SQL PIVOT 操作

与通常需要聚合函数的 PIVOT 操作不同,也可以在无需聚合函数的情况下执行 PIVOT 变换。这可能出现在需要数据重构而无需汇总的特定场景中。

考虑以下表格:

CustomerID DBColumnName Data
1 FirstName Joe
1 MiddleName S
1 LastName Smith
1 Date 12/12/2009
2 FirstName Sam
2 MiddleName S
2 LastName Freddrick
2 Date 1/12/2009
3 FirstName Jaime
3 MiddleName S
3 LastName Carol
3 Date 12/1/2009

目标是将此数据透视到以下结果:

CustomerID FirstName MiddleName LastName Date
1 Joe S Smith 12/12/2009
2 Sam S Freddrick 1/12/2009
3 Jaime S Carol 12/1/2009

要使用无需聚合函数的 PIVOT 来实现此目标,可以使用以下查询:

<code class="language-sql">SELECT CustomerID,
       MIN(CASE DBColumnName WHEN 'FirstName' THEN Data END) AS FirstName,
       MIN(CASE DBColumnName WHEN 'MiddleName' THEN Data END) AS MiddleName,
       MIN(CASE DBColumnName WHEN 'LastName' THEN Data END) AS LastName,
       MIN(CASE DBColumnName WHEN 'Date' THEN Data END) AS Date
FROM table
GROUP BY CustomerId;</code>

此查询在 PIVOT 操作中执行 case 语句,以针对给定的 CustomerID 选择每个 DBColumnName 的最小值。由于每个 CustomerID 和 DBColumnName 组合只有一行数据,因此 MIN 函数返回所需的值。

以上是如何在没有聚合函数的情况下执行 T-SQL PIVOT 操作?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn