行資料轉列資料

2021-04-25 03:40:29 字數 900 閱讀 7934

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 ...