首頁 > 資料庫 > Oracle > oracle中listagg函數的用法

oracle中listagg函數的用法

下次还敢
發布: 2024-05-03 00:15:28
原創
550 人瀏覽過

LISTAGG 函數將一組行的資料連接成一個字串,使用指定的連接符號分隔元素。用法包括:1. 連接一個列中的所有值;2. 使用連接符號分隔值;3. 忽略 NULL 值;4. 按群組分割區;5. 依序連接值。

oracle中listagg函數的用法

Oracle 中LISTAGG 函數的用法

定義:
LISTAGG 函數將一組行的資料連接成一個字串,並使用指定的連接符號分隔各個元素。

語法:

<code>LISTAGG(expression, delimiter [IGNORE NULLS]) OVER (PARTITION BY partition_expression ORDER BY order_expression)</code>
登入後複製

參數:

  • expression:要連接的資料列
  • delimiter:連接元素之間的字元分隔符號(可選)
  • IGNORE NULLS:忽略NULL 值(可選)
  • partition_expression:分區的資料列,指定組分元素所處的群組(可選)
  • order_expression:指定連接元素的順序(可選)

用法:

LISTAGG 函數通常使用於將多個行合併為一個字串,以方便顯示或處理。以下是其典型用法:

1. 連接一個列中的所有值

<code>SELECT LISTAGG(name) FROM table_name;</code>
登入後複製

2. 使用連接符號分隔值

<code>SELECT LISTAGG(name, ', ') FROM table_name;</code>
登入後複製

3. 忽略NULL 值

<code>SELECT LISTAGG(name IGNORE NULLS) FROM table_name;</code>
登入後複製

#4. 依群組分割區

<code>SELECT LISTAGG(name) OVER (PARTITION BY group_id) FROM table_name;</code>
登入後複製

##5. 依序連接值

<code>SELECT LISTAGG(name) OVER (ORDER BY name) FROM table_name;</code>
登入後複製

範例:

#下表顯示了員工表中使用LISTAGG 函數連接員工姓名的範例:

員工ID姓名#1
##John
# #2 Jane
3

David

使用LISTAGG 函數連接所有員工姓名:

<code>SELECT LISTAGG(name) FROM employees;</code>
登入後複製

結果:

<code>John, Jane, David</code>
登入後複製
登入後複製

使用逗號作為連接符號:

<code>SELECT LISTAGG(name, ', ') FROM employees;</code>
登入後複製
###結果:###
<code>John, Jane, David</code>
登入後複製
登入後複製
###按部門分區並連接每個部門的員工姓名:###
<code>SELECT LISTAGG(name) OVER (PARTITION BY department) FROM employees;</code>
登入後複製
###結果:###
<code>John
Jane
David</code>
登入後複製

以上是oracle中listagg函數的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板