歡迎使用CSDN markdown編輯器

2021-07-11 17:31:06 字數 1618 閱讀 7118

這是乙個oracle的列轉行函式:listagg()

先看示例**:

with temp as(

select

'china' nation ,'guangzhou' city from dual union

allselect

'china' nation ,'shanghai' city from dual union

allselect

'china' nation ,'beijing' city from dual union

allselect

'usa' nation ,'new york' city from dual union

allselect

'usa' nation ,'bostom' city from dual union

allselect

'japan' nation ,'tokyo' city from dual

)select nation,listagg(city,',') within group (order

by city)

from temp

group

by nation

這是最基礎的用法:

listagg(***,***) within group( order by ***)

用法就像聚合函式一樣,通過group by語句,把每個group的乙個字段,拼接起來。

非常方便。

同樣是聚合函式,還有乙個高階用法:

就是over(partition by ***)

也就是說,在你不實用group by語句時候,也可以使用listagg函式:

with temp as(

select

500 population, 'china' nation ,'guangzhou' city from dual union

allselect

1500 population, 'china' nation ,'shanghai' city from dual union

allselect

500 population, 'china' nation ,'beijing' city from dual union

allselect

1000 population, 'usa' nation ,'new york' city from dual union

allselect

500 population, 'usa' nation ,'bostom' city from dual union

allselect

500 population, 'japan' nation ,'tokyo' city from dual

)select population,

nation,

city,

listagg(city,',') within group (order

by city) over (partition by nation) rank

from temp

總結:listagg()把它當作sum()函式來使用就可以了。

歡迎使用CSDN markdow

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

歡迎毛毛與妞妞使用CSDN markdown編輯器

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

歡迎使用CSDN markdow1n編輯器

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...