Oracle橫表轉縱表

2021-05-23 02:32:49 字數 2924 閱讀 6902

現有

scott

使用者下的

emp和

dept表

empempno

number(4)

ename

varchar2(10)

jobvarchar2(9)

mgrnumber(4)

hiredate

date

salnumber(7,2)

comm

number(7,2)

deptno

number(2)

dept

deptno

number(2)

dname

varchar2(14)

locvarchar2(13)

統計不同部門和工作的員工的總工資

實現橫標轉換為縱表

decode

實現select

d.dname dname,

sum(decode(e.job,

'clerk'

, e.sal,

0)) clerk,

sum(decode(e.job,

'salesman'

, e.sal,

0)) salesman,

sum(decode(e.job,

'analyst'

, e.sal,

0)) analyst,

sum(decode(e.job,

'manager'

, e.sal,

0)) manager,

sum(decode(e.job,

'president'

, e.sal,

0)) president

from

emp e

join

dept d on

e.deptno = d.deptno

group

byd.dname;

case when

實現select

d.dname dname,

sum(

case

e.job

when

'clerk'

then

e.sal

else0

end

) clerk,

sum(

case

e.job

when

'salesman'

then

e.sal

else0

end

) salesman,

sum(

case

e.job

when

'president'

then

e.sal

else0

end

) president,

sum(

case

e.job

when

'manager'

then

e.sal

else0

end

) manager,

sum(

case

e.job

when

'analyst'

then

e.sal

else0

end

) analyst

from

emp e

join

dept d on

e.deptno = d.deptno

group

byd.dname;

帶合計項的

select

d.dname dname,

sum(decode(e.job,

'clerk'

, e.sal,

0)) clerk,

sum(decode(e.job,

'salesman'

, e.sal,

0)) salesman,

sum(decode(e.job,

'analyst'

, e.sal,

0)) analyst,

sum(decode(e.job,

'manager'

, e.sal,

0)) manager,

sum(decode(e.job,

'president'

, e.sal,

0)) president

from

emp e

join

dept d

one.deptno = d.deptno

group

byd.dname

union

select'總計

'dname,

sum(decode(e.job,

'clerk'

, e.sal,

0)) clerk,

sum(decode(e.job,

'salesman'

, e.sal,

0)) salesman,

sum(decode(e.job,

'analyst'

, e.sal,

0)) analyst,

sum(decode(e.job,

'manager'

, e.sal,

0)) manager,

sum(decode(e.job,

'president'

, e.sal,

0)) president

from

emp e

join

dept d2

one.deptno = d2.deptno

資料庫之橫表轉縱表 縱表轉橫表

橫表變縱表或縱表變橫表 成績表如下 name course grade 張三 語文 95 張三 數學 90 張三 英語 89 李四 語文 92 李四 數學 88 李四 英語 97 變成姓名 語文 數學 英語 張三 95 90 89 李四 92 88 97 縱表轉橫表create table biao...

縱表轉橫表sql

縱表結構 fname ftype fvalue 小明 zaocan 10 小明 zhongcan 20 小明 wancan 5 轉換後的表結構 fname zaocan value zhongcan value wancan value 小明 10 20 5 縱表轉橫表sql如下 select fn...

Oracle 橫表和縱表

前一段時間了解到的,今天有空寫下,備忘 先來說說橫表和縱坐表的概念,先來看看以下兩圖 第一張圖就是橫表,一行表示了乙個實體記錄,這就是我們傳統的設計表的形式 第二張圖就是縱表,他的一行記錄,是用於表示某個學生的屬性名和屬性值對應關係,像這邊有兩個屬性 名字和性別 在縱表中就要用兩條記錄來表示乙個學生...