网站空间数据库需要多大,做全景图有哪些网站,网页美工设计什么,seo网站基础建设对于Oracle的行转列功能一直云里雾里#xff0c;马马虎虎#xff0c;对行转列的使用场景和使用方法都不够深刻#xff0c;最近有空理解一下。 Oracle 11g后有专门的函数pivot#xff0c;对于特定的场景可以直接套用。 需求#xff1a;求各份job不同员工工资是多少#xf…对于Oracle的行转列功能一直云里雾里马马虎虎对行转列的使用场景和使用方法都不够深刻最近有空理解一下。 Oracle 11g后有专门的函数pivot对于特定的场景可以直接套用。 需求求各份job不同员工工资是多少
jobsaldeptnoA100010A100020A200020B300020B400030C500020C600030
select ①* from
(select ②job,sal,deptno)
pivot (sum(sal) as ③s
for deptno in (10 as d10,20 as d20,30 as d30))
order by 1;执行结果如下
jobd10_sd20_sd30_sA10003000B30004000C50006000
注释 ① 该处返回的是行转列之后的字段如果查询原有字段会报错 ② 除了要汇总的列sal和要转换的列deptno其他字段默认group by ③ as后加的s与d10、d20、d30默认下划线连接也可不做另外连接 ④ pivot子句实际执行的还是case when语句。