准备数据源
select TOP 3 F_ProtocolName as "名称",F_TotalFee as "费用" from CRM_Protocol
| 名称 | 费用 |
|---|---|
| 西安市XXXX公司 | 1000 |
| 上海市XXXX公司 | 2000 |
| 厦门市XXXX有限公司 | 3000 |
使用PIVOT函数进行 行转列
--行转列
select * from
(select TOP 3 F_ProtocolName as "名称",F_TotalFee as "费用" from CRM_Protocol)
as a PIVOT(MAX(费用) FOR 名称 IN ("西安市XXXX公司","上海市XXXX公司","厦门市XXXX有限公司")) as lastData
| 西安市XXXX公司 | 上海市XXXX公司 | 厦门市XXXX有限公司 |
|---|---|---|
| 1000 | 2000 | 3000 |
注释
-- PIVOT 语法
SELECT <非透视的列>,
[第一个透视的列] AS <列名称>,
[第二个透视的列] AS <列名称>,
...
[最后一个透视的列] AS <列名称>,
FROM
(<生成数据的 SELECT 查询>)
AS <源查询的别名>
PIVOT
(
<聚合函数>(<要聚合的列>)
FOR
[<包含要成为列标题的值的列>]
IN ( [第一个透视的列], [第二个透视的列],
... [最后一个透视的列])
) AS <透视表的别名>
<可选的 ORDER BY 子句>;