oracle sql實現資料行轉列與列轉行

2021-10-05 14:32:57 字數 2459 閱讀 6037

with

tempas(

select

'四川省' nation,

'成都市' 第一,

'綿陽市' 第二,

'德陽市' 第三,

'宜賓市' 第四

from dual

union

allselect

'湖北省' nation,

'武漢市' 第一,

'宜昌市' 第二,

'襄陽市' 第三,

'' 第四

from dual)

select nation, name, title

from

temp

unpivot

(name for title in

(第一, 第二, 第三, 第四)

) t

1.第一

with

tempas(

select

'四川省' nation ,

'成都市' city,

'第一' ranking from dual union

allselect

'四川省' nation ,

'綿陽市' city,

'第二' ranking from dual union

allselect

'四川省' nation ,

'德陽市' city,

'第三' ranking from dual union

allselect

'四川省' nation ,

'宜賓市' city,

'第四' ranking from dual union

allselect

'湖北省' nation ,

'武漢市' city,

'第一' ranking from dual union

allselect

'湖北省' nation ,

'宜昌市' city,

'第二' ranking from dual union

allselect

'湖北省' nation ,

'襄陽市' city,

'第三' ranking from dual

)select nation,

max(decode(ranking,

'第一'

, city,'')

)as 第一,

max(decode(ranking,

'第二'

, city,'')

)as 第二,

max(decode(ranking,

'第三'

, city,'')

)as 第三,

max(decode(ranking,

'第四'

, city,'')

)as 第四

from

temp

group

by nation

2.第二

with

tempas(

select

'四川省' nation,

'成都市' city,

'第一' ranking from dual

union

allselect

'四川省' nation,

'綿陽市' city,

'第二' ranking from dual

union

allselect

'四川省' nation,

'德陽市' city,

'第三' ranking from dual

union

allselect

'四川省' nation,

'宜賓市' city,

'第四' ranking from dual

union

allselect

'湖北省' nation,

'武漢市' city,

'第一' ranking from dual

union

allselect

'湖北省' nation,

'宜昌市' city,

'第二' ranking from dual

union

allselect

'湖北省' nation,

'襄陽市' city,

'第三' ranking from dual)

select

*from

temp

pivot

(max

(city)

for ranking in

('第一'

as 第一,

'第二'

as 第二,

'第三'

as 第三,

'第四'

as 第四)

)

Oracle SQL查詢語句轉mysql

增加自增屬性 alter table tpl modify tpl id int not null auto increment 當前時間獲取 sysdate sysdate nvl函式去掉 存在加字尾 cpcdb link的sql,mysql不存在dblink,mysql使用庫名.表名 來實現跨庫...

oracle SQL豎表轉橫表

oracle sql豎表轉橫表 t t student表查詢記錄如下,要轉成橫表 姓名 課程 成績 1 張飛 語文 80 2 張飛 數學 87 3 關羽 語文 97 4 張飛 英語 68 5 關羽 數學 53 6 劉備 語文 90 方法一 用decode實現,select t.name,sum de...

oracle SQL豎表轉橫表

oracle sql 實現豎表轉橫表 t t student表查詢記錄如下,要轉成橫表 姓名 課程 成績 1 張飛 語文 80 2 張飛 數學 87 3 關羽 語文 97 4 張飛 英語 68 5 關羽 數學 53 6 劉備 語文 90 方法一 用decode實現,select t.name,sum...