1.簡單案例
create table student
(sid int primary key identity(1,1), --主鍵自增
sname varchar(20), --學生姓名
)select * from student
create table class
(cid int primary key identity(1,1), --主鍵自增
cname varchar(20)
)select* from class
create table score
(scid int primary key identity(1,1), --主鍵自增
scname int,
sid int,
cid int
)select * from score
select * from
(select a.sname,b.scname,c.cname from student as a
inner join score as b on a.[sid]=b.[sid]
inner join class as c on b.cid=c.cid
) as p
pivot
(sum(p.scname) for
p.cname in (語文,數學,英語)
) as t
2.另一案例
select name as 水果,
max(case regionname when '北京' then price else 0 end) 北京,
max(case regionname when '廣州' then price else 0 end) 廣州
from (
select f.name,r.regionname,rf.price from fruits f
join regionprice rf on f.id =rf.fruitid
join regions r on rf.regionid =r.id
) tb group by name
select f.name,r.regionname,rf.price from fruits f
join regionprice rf on f.id =rf.fruitid
join regions r on rf.regionid =r.id
select name as 水果,
case regionname when '北京' then price else 0 end 北京,
case regionname when '廣州' then price else 0 end 廣州
from (
select f.name,r.regionname,rf.price from fruits f
join regionprice rf on f.id =rf.fruitid
join regions r on rf.regionid =r.id
) tb
select * from
(select f.name,r.regionname,rf.price from fruits f
join regionprice rf on f.id =rf.fruitid
join regions r on rf.regionid =r.id
) tb
pivot
(max(tb.price) for tb.regionname in
([廣州],[北京])
) as a
SQL SERVER 行轉列 列轉行
第一步 建立臨時表結構 create table student 建立臨時表 stuname nvarchar 20 學生名稱 stusubject nvarchar 20 考試科目 stuscore int 考試成績 drop table student 刪除臨時表 select from stu...
行轉列 列轉行
行轉列 select t.t.rowid from test1 t id c1 c2 c3 1 小紅 數學 10 2 小紅 語文 20 3 小欄 數學 15 4 小欄 語文 25 test1 oracle select c1,to char wm concat c2 c2 from test1 gr...
Sql server 中將資料行轉列列轉行(二)
第一步 建立臨時表結構 create table student 建立臨時表 stuname nvarchar 20 學生名稱 chinese int,math int,english int drop table student 刪除臨時表 select from student 查詢所有資料 i...