如何使用unpivot将Colums转换为sql server中的行 [英] How to Convert Colums to rows in sql server using unpivot

查看:74
本文介绍了如何使用unpivot将Colums转换为sql server中的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

表格就像这样...



 创建 < span class =code-keyword> table  DailyIncome(VendorId  nvarchar  10 ), IncomeDay  nvarchar  10 ),IncomeAmount  int 

插入 进入 DailyIncome (SPIKE,FRI, 100
insert into DailyIncome values (SPIKE,MON, 300
插入 进入 DailyIncome (FREDS, SUN, 400
insert 进入 DailyIncome (SPIKE,WED, 500
插入 进入 DailyIncome (SPIKE,TUE, 200
insert into DailyIncome (JOHNS,WED, 900
插入 进入 DailyIncome (SPIKE,FRI , 100
insert into DailyIncome (JOHNS,MON, 300
插入 进入 DailyIncome values (SPIKE,SUN, 400
insert 进入 DailyIncome (JOHNS,FRI, 300
插入 进入 DailyIncome (FREDS,TUE, 500
insert into DailyIncome values (FREDS,TUE, 200
插入 进入 DailyIncome (SPIKE, MON, 900
插入 进入 DailyIncome (FREDS,FRI, 900
插入 进入 DailyIncome values (FREDS,MON, 500
insert into DailyIncome (JOHNS,SUN, 600
插入 进入 DailyIncome (SPIKE,FRI, 300
insert into DailyIncome values (SPIKE,WED, 500
插入 进入 DailyIncome (SPIKE, FRI, 300





then我希望列到行和列到列...

解决方案

  SELECT  VendorId,SUN,MON,TUE,WED,THU,FRI,SAT  FROM  
SELECT VendorId,IncomeDay,IncomeAmount FROM DailyIncome)up
pivot(AVG(IncomeAmount) FOR IncomeDay in (SUN,MON,TUE,WED,THU,FRI,SAT)) AS pvt


Table iS like this...

create table DailyIncome(VendorId nvarchar(10), IncomeDay nvarchar(10), IncomeAmount int)

insert into DailyIncome values (SPIKE, FRI, 100)
insert into DailyIncome values (SPIKE, MON, 300)
insert into DailyIncome values (FREDS, SUN, 400)
insert into DailyIncome values (SPIKE, WED, 500)
insert into DailyIncome values (SPIKE, TUE, 200)
insert into DailyIncome values (JOHNS, WED, 900)
insert into DailyIncome values (SPIKE, FRI, 100)
insert into DailyIncome values (JOHNS, MON, 300)
insert into DailyIncome values (SPIKE, SUN, 400)
insert into DailyIncome values (JOHNS, FRI, 300)
insert into DailyIncome values (FREDS, TUE, 500)
insert into DailyIncome values (FREDS, TUE, 200)
insert into DailyIncome values (SPIKE, MON, 900)
insert into DailyIncome values (FREDS, FRI, 900)
insert into DailyIncome values (FREDS, MON, 500)
insert into DailyIncome values (JOHNS, SUN, 600)
insert into DailyIncome values (SPIKE, FRI, 300)
insert into DailyIncome values (SPIKE, WED, 500)
insert into DailyIncome values (SPIKE, FRI, 300)



then i want columns to rows and rows to colums...

解决方案

SELECT VendorId,SUN,MON,TUE,WED,THU,FRI,SAT FROM
(SELECT VendorId,IncomeDay,IncomeAmount FROM DailyIncome) up
pivot(AVG(IncomeAmount) FOR IncomeDay in(SUN,MON,TUE,WED,THU,FRI,SAT))AS pvt


这篇关于如何使用unpivot将Colums转换为sql server中的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆