oracle之行列互轉

2022-06-05 09:18:08 字數 1504 閱讀 7427

--

建立臨時表 temp

with

tempas(

select

'湖北省

' nation, '

武漢市' city, '

first

' rank from dual union

allselect

'湖北省

' nation, '

宜昌市' city, '

second

' rank from dual union

allselect

'湖北省

' nation, '

襄陽市' city, '

third

' rank from

dual

)

nation

city

rank

湖北省武漢市

first

湖北省宜昌市

second

湖北省襄陽市

third

--

行轉列 sql

select

nation,

max(decode(rank, '

first

', city, ''

)) first,

max(decode(rank, '

second

', city, ''

)) second,

max(decode(rank, '

third

', city, ''

)) third

from

temp

group

by nation

nation

first

second

third

湖北省武漢市

宜昌市襄陽市

--

建立臨時表 temp

with

tempas(

select

'湖北省

' nation, '

武漢市' first, '

宜昌市' second, '

襄陽市' third from

dual

)

nation

first

second

third

湖北省武漢市

宜昌市襄陽市

--

列轉行 sql

select nation, city, rank from

temp

unpivot (city

for rank in (first, second, third))

nation

city

rank

湖北省武漢市

first

湖北省宜昌市

second

湖北省襄陽市

third

Oracle筆記 之 行列互換

pivot函式 行轉列函式 格式pivot 任一聚合函式 for 需專列的值所在列名 in 需轉為列名的值 pivot函式位於from集合後 示例示例1 select from emp pivot sum nvl sal,0 for deptno in 10 as accounting,20as r...

hive行列互轉

先說行轉列是什麼意思啊,假設有這樣的資料,uid表示使用者,time表示時刻,event表示使用者這個時刻在幹什麼,我們儲存到資料庫中就是這樣的 uidtime event a09 01 00睜眼a 09 02 00 找手機a 09 03 00發呆a 09 04 00洗臉a 09 05 00刷牙a ...

sql 行列互轉

1 行轉列 現有資料 期望資料 1.1建表建資料 if object id temp 20170701 u is not null drop table temp 20170701 create table temp 20170701 id int primary key identity 1,1 ...