LISTAGG 函數將一組行的資料連接成一個字串,使用指定的連接符號分隔元素。用法包括:1. 連接一個列中的所有值;2. 使用連接符號分隔值;3. 忽略 NULL 值;4. 按群組分割區;5. 依序連接值。
Oracle 中LISTAGG 函數的用法
定義:
LISTAGG 函數將一組行的資料連接成一個字串,並使用指定的連接符號分隔各個元素。
語法:
<code>LISTAGG(expression, delimiter [IGNORE NULLS]) OVER (PARTITION BY partition_expression ORDER BY order_expression)</code>
參數:
用法:
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 函數連接員工姓名的範例:姓名 | |
---|---|
##John | |
# #2 | Jane |
使用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中文網其他相關文章!