这种列转置为行怎么写?
名称类型金额
张三A10
张三B11
张三C12
张三C13
张三D14
李四A15
转置为:
名称ABCD
张三10112514
李四15
[解决办法]
------------------------------ 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 行受影响)*/