1. 程式人生 > >SQL查詢結果為二維表

SQL查詢結果為二維表

mon 結果 else AS table case when create lse nio

 1 ---測試數據---
 2 if object_id([tb]) is not null drop table [tb]
 3 go
 4 create table [tb]([code] varchar(6),[Month] int,[Num] int)
 5 insert [tb]
 6 select C00001,200401,3 union all
 7 select C00001,200402,1 union all
 8 select C00001,200403,1 union all
 9 select C00001,200404,3 union all
10 select C00001,200405
,3 union all 11 select C00001,200604,1 union all 12 select C00002,200401,3 union all 13 select C00002,200402,2 union all 14 select C00002,200404,1 union all 15 select C00002,200405,1 union all 16 select C9999,200401,5 union all 17 select C9999,200402,2 union all 18 select C9999,200403,2 19 go 20 21 ---查詢--- 22 declare
@sql varchar(8000) 23 select 24 @sql=isnull(@sql+,,‘‘) 25 +sum(case when [month]=+ltrim([month])+ then num else 0 end) as [+ltrim([month])+] 26 from 27 (select distinct [month] from tb) t 28 29 exec (select code,+@sql+ from tb group by code) 30 31 ---結果--- 32 code 200401 200402
200403 200404 200405 200604 33 ------ ----------- ----------- ----------- ----------- ----------- ----------- 34 C00001 3 1 1 3 3 1 35 C00002 3 2 0 1 1 0 36 C9999 5 2 2 0 0 0 37 38 (3 行受影響)

原文自:https://bbs.csdn.net/topics/350043942

SQL查詢結果為二維表