SQL 行转列的两种做法
if object_id('tb')is not null drop table tb
Go
create table tb(姓名 varchar(10),課程 varchar(10),分數(shù) int)
insert into tb values('張三','語文',74)
insert into tb values('張三','數(shù)學',83)
insert into tb values('張三','物理',93)
insert into tb values('李四','語文',74)
insert into tb values('李四','數(shù)學',84)
insert into tb values('李四','物理',94)
go
select * from tb
-- 使用case when (SQL2000以上)
select 姓名,
max(case 課程 when '語文' then 分數(shù) else 0 end)語文,
max(case 課程 when '數(shù)學'then 分數(shù) else 0 end)數(shù)學,
max(case 課程 when '物理'then 分數(shù) else 0 end)物理
from tb
group by 姓名
-- 使用pivot
select * from tb pivot(max(分數(shù)) for 課程 in (語文,數(shù)學,物理))a
?
-- 另外也可以通過寫存儲過程實現(xiàn),但比較麻煩。
轉(zhuǎn)載于:https://www.cnblogs.com/chengeng/p/5975925.html
總結(jié)
以上是生活随笔為你收集整理的SQL 行转列的两种做法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VMI和JIT
- 下一篇: iOS中的UIScrollView(滑动