create table booklibary([圖書館] varchar(10),[科目] varchar(10),[數量] int)
insert into booklibary
select 'a','語文',5
union all select 'b','數學',6
union all select 'c','英語',3
union all select 'b','語文', 4
union all select 'a','數學', 3
goselect * from booklibary
declare @execsql varchar(8000)
set @execsql='select [圖書館]'
select @execsql=@execsql+',max(case when [科目]='''+[科目]
+''' then [數量] else '''' end) as '''+ [科目]
+ '''' from booklibary group by [科目]
set @execsql=@execsql+'from booklibary group by [圖書館]'
print @execsql
exec(@execsql)
select [圖書館],
max(case when [科目]='數學' then [數量] else '' end) as '數學',
max(case when [科目]='英語' then [數量] else '' end) as '英語',
max(case when [科目]='語文' then [數量] else '' end) as '語文'
from booklibary group by [圖書館]
動態生成行轉列 並進行資料分析
create proc p cggl jinhuo rop01 採購一級分類費用彙總表 按進貨單 不含稅金額 行轉列 lyear char 4 年度 as declare sql nvarchar 4000 declare lyear nvarchar 4 declare lmonth nvarch...
資料行轉列例項
在系統開發中常常遇到進行資料的統計,並將資料行轉列的情景,例如表中的表示。但是在資料庫中呈現出來的資料往往是橫行的樣式。這就需要乙個轉換。轉換的方式有兩種方式。1.利用cross join去進行轉換。2.利用case when函式去轉換。資料庫查詢出的結果 張三170 李四90 王五180 需要資料...
行轉列的資料
for xml path param 將查詢結果以xml格式輸出 1 select id,name from table1 for xml path 2 id和name為table1的真實字段 path後面沒有引數時,每行資料被預設標籤包裹,每行列資料被被其列名標籤包裹。上面sql的結果可如下 1 ...