首页 > 数据库 > mysql教程 > 如何在不使用聚合函数的情况下透视 T-SQL 表?

如何在不使用聚合函数的情况下透视 T-SQL 表?

Susan Sarandon
发布: 2025-01-20 09:57:09
原创
804 人浏览过

How to Pivot a T-SQL Table Without Using Aggregate Functions?

T-SQL 数据透视:无需聚合函数

在某些情况下,您可能需要将表中的数据转换为透视格式,而无需使用 SUM 或 COUNT 等聚合函数。本示例展示了一种使用 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

为了在不使用聚合函数的情况下实现此目标,可以使用以下 T-SQL 查询:

<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>
登录后复制

此查询在 CASE 语句中使用 MIN 函数,根据 DBColumnName 为每一列选择最小值。“GROUP BY”子句用于按 CustomerID 分组结果。

虽然与使用聚合函数相比,这种方法可能显得笨拙且效率低下,但在聚合函数不适用(例如处理唯一值或不同值时)的某些情况下,它可以提供更大的灵活性。务必评估查询的具体需求,并为给定情况选择最合适的方法。

以上是如何在不使用聚合函数的情况下透视 T-SQL 表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板