Listagg是MySQL查詢語句中非常有用的函數之一,它用于將多行數據合并成一行,并以指定的分隔符分隔每個值。
Listagg函數有兩個參數:
- 第一個參數是要合并的列的名稱
- 第二個參數是分隔符
下面是一個簡單的示例,將一個表中的字符串字段合并為一個逗號分隔的字符串:
SELECT LISTAGG(name, ',') AS names FROM my_table
這個查詢將返回my_table表中name字段的所有值,以逗號分隔的字符串形式。
Listagg函數還可以與其他SQL函數結合使用,例如聚合函數(SUM、AVG、MAX等等)或分組函數(GROUP BY)。下面是一個示例,它使用Listagg函數和GROUP BY語句來將表中每個分組的字符串合并為一個逗號分隔的字符串:
SELECT category, LISTAGG(name, ',') AS names FROM my_table GROUP BY category
這個查詢將返回每個不同的category值以及該category中所有name值的逗號分隔的列表。
Listagg函數是一個非常有用的工具,可以幫助將多個行合并為一個行,以便于更好的數據處理,當然也可以更好的展示數據。