日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

oracle中创建函数行变列,oracle decode 函数实现行转列

發(fā)布時(shí)間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle中创建函数行变列,oracle decode 函数实现行转列 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

用decode函數(shù),或者case when實(shí)現(xiàn)行轉(zhuǎn)列 Oracle ----創(chuàng)建測(cè)試表create table student_score( name varchar2(20), subject varchar2(20), score number(4,1) ); -----插入測(cè)試數(shù)據(jù)insert into student_score (name,subject,score)values('張三','語(yǔ)文',78); in

用decode函數(shù),或者case when實(shí)現(xiàn)行轉(zhuǎn)列

Oracle

----創(chuàng)建測(cè)試表

create table student_score(

name varchar2(20),

subject varchar2(20),

score number(4,1)

);

-----插入測(cè)試數(shù)據(jù)

insert into student_score (name,subject,score)values('張三','語(yǔ)文',78);

insert into student_score (name,subject,score)values('張三','數(shù)學(xué)',88);

insert into student_score (name,subject,score)values('張三','英語(yǔ)',98);

insert into student_score (name,subject,score)values('李四','語(yǔ)文',89);

insert into student_score (name,subject,score)values('李四','數(shù)學(xué)',76);

insert into student_score (name,subject,score)values('李四','英語(yǔ)',90);

insert into student_score (name,subject,score)values('王五','語(yǔ)文',99);

insert into student_score (name,subject,score)values('王五','數(shù)學(xué)',66);

insert into student_score (name,subject,score)values('王五','英語(yǔ)',91);

-----decode行轉(zhuǎn)列

select name "姓名",

sum(decode(subject, '語(yǔ)文', nvl(score, 0), 0)) "語(yǔ)文",

sum(decode(subject, '數(shù)學(xué)', nvl(score, 0), 0)) "數(shù)學(xué)",

sum(decode(subject, '英語(yǔ)', nvl(score, 0), 0)) "英語(yǔ)"

from student_score

group by name;

------ case when 行轉(zhuǎn)列

select name "姓名",

sum(case when subject='語(yǔ)文'

then nvl(score,0)

else 0

end) "語(yǔ)文",

sum(case when subject='數(shù)學(xué)'

then nvl(score,0)

else 0

end) "數(shù)學(xué)",

sum(case when subject='英語(yǔ)'

then nvl(score,0)

else 0

end) "英語(yǔ)"

from student_score

group by name;

本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請(qǐng)注明出處,感謝您的尊重!

總結(jié)

以上是生活随笔為你收集整理的oracle中创建函数行变列,oracle decode 函数实现行转列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。