当前位置: 代码迷 >> Sql Server >> 这种列转置为行如何写
  详细解决方案

这种列转置为行如何写

热度:47   发布时间:2016-04-27 11:53:35.0
这种列转置为行怎么写?
名称 类型 金额
张三 A 10
张三 B 11
张三 C 12
张三 C 13
张三 D 14
李四 A 15


转置为:

名称 A B C D
张三 10 11 25 14
李四 15


------解决方案--------------------
SQL code
------------------------------ Author  :fredrickhu(小F,向高手学习)-- Date    :2012-07-19 09:34:51-- Version:--      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (Intel X86) --    Apr 22 2011 11:57:00 --    Copyright (c) Microsoft Corporation--    Enterprise Edition on Windows NT 6.1 <X64> (Build 7600: ) (WOW64)--------------------------------> 测试数据:[tb]if object_id('[tb]') is not null drop table [tb]go create table [tb]([名称] varchar(4),[类型] varchar(1),[金额] int)insert [tb]select '张三','A',10 union allselect '张三','B',11 union allselect '张三','C',12 union allselect '张三','C',13 union allselect '张三','D',14 union allselect '李四','A',15--------------开始查询--------------------------select * from [tb] pivot (max(金额) for 类型 in (a,b,c,d)) b----------------结果----------------------------/* 名称   a           b           c           d---- ----------- ----------- ----------- -----------李四   15          NULL        NULL        NULL张三   10          11          13          14(2 行受影响)*/
  相关解决方案