概述
在SQL中,逗号经常用于分隔不同的数据值。例如,在插入语句中,可以使用逗号将多个值插入到一个表中。不过,有时我们需要从数据库中获取逗号分隔的值。本篇文章将介绍一些SQL函数,用于获取逗号分隔的值。
STRING_AGG() 函数
STRING_AGG() 函数可以将一组字符串连接成一个字符串,并使用指定的分割符分隔。例如,以下查询使用 STRING_AGG() 函数将表中所有姓氏连接成一个逗号分隔的字符串:
sql
SELECT STRING_AGG(last_name, ',') AS last_names
FROM employees;
LISTAGG() 函数 (Oracle)
LISTAGG() 函数与 STRING_AGG() 函数类似,用于将一组字符串连接成一个逗号分隔的字符串。但是,LISTAGG() 函数是Oracle数据库中的特定函数。例如:
sql
SELECT LISTAGG(last_name, ',') WITHIN GROUP (ORDER BY last_name) AS last_names
FROM employees;
GROUP_CONCAT() 函数 (MySQL)
GROUP_CONCAT() 函数是MySQL数据库中的特定函数,用于将一组字符串连接成一个逗号分隔的字符串。例如:
sql
SELECT GROUP_CONCAT(last_name) AS last_names
FROM employees;
注意
* STRING_AGG() 函数在SQL标准中定义,而 LISTAGG() 函数和 GROUP_CONCAT() 函数是特定数据库中的函数。
* STRING_AGG() 函数的语法可能因数据库而异。例如,在一些数据库中,它需要一个 ORDER BY 子句。
* 这些函数可以用于各种场景,例如创建报告、导出数据或处理文本数据。