SQL server非数值型字段,如何 实现横纵转换

SQL server中字段为非数值型字段,如何实现横纵转换?可以使用 pivot 吗?
如下表A中的三个字段,如何将项目名称和结果变为横表排列。

img

  • 看下这篇博客,也许你就懂了,链接:sql server动态行专列pivot的in子查询
  • 除此之外, 这篇博客: Microsoft SQL Server 2008技术内幕:T-SQL查询——读书笔记(全)中的 第八章 透视转换(Pivoting) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 透视转换是一种行转列的技术。
    - CASE WHEN+Group BY+聚合函数
    - PIVOT
    逆透视转换:列转行

    - UNPIVOT
    使用CLR及C#或VB自定义函数

    - GROUPING SETS从属子句
    等同于多个Group By查询的结果集统一在一起,但性能更好,不常用。
    在这里插入图片描述
    在这里插入图片描述

    - CUBE从属子句
    例:
    在这里插入图片描述

    在这里插入图片描述

    - WITH CUBE
    不是标准SQL,不常用,用到再查其他资料吧。

    - ROOLUP
    不是标准SQL,不常用,用到再查其他资料吧。

    - 分组集代数
    不常用,用到再查其他资料吧。