Skip to main content

SQLite GROUP_CONCAT Function:列中的CONCAT非空值

SQLite GROUP_CONCAT()函数简介

GROUP_CONCAT()函数是一个聚合函数,将列中的所有非空值连接在一起。

下面显示了GROUP_CONCAT()函数的语法:

GROUP_CONCAT(expression [,separator])

在这种语法中:

SQLite GROUP_CONCAT()函数演示

首先,为演示创建一个名为t的新表:

CREATE TABLE t(
id INTEGER PRIMARY KEY,
val TEXT
);

第二,在t表中插入三个字符串

INSERT INTO t(val)
VALUES('A'),('B'),(NULL),('C');

第三,从t表中查询数据:

SELECT 
id,
val
FROM
t;

以下是输出:

SQLite GROUP_CONCAT sample table

第四,下面的语句使用GROUP_CONCAT()函数连接t表的val列中的所有值:

SELECT
GROUP_CONCAT(val)
FROM
t;

在本例中,我们没有使用分隔符,因此,GROUP_CONCAT()函数默认使用逗号。

下图显示了输出:

SQLite GROUP_CONCAT example

第五,如果不想使用逗号作为分隔符,可以使用另一个字符串,例如分号(“;”):

SELECT
GROUP_CONCAT(val,';')
FROM
t;

SQLite GROUP_CONCAT example with separator

SQLite GROUP_CONCAT()函数示例

下面的语句获取每个唱片集的唱片集id和以逗号分隔的曲目名称列表:

SELECT
Title,
GROUP_CONCAT(name,';') track_list
FROM
tracks t
INNER JOIN albums a on a.AlbumId = t.AlbumId
GROUP BY
Title
ORDER BY
Title;

输出如下所示:

SQLite GROUP_CONCAT practical example

在本例中:

在本教程中,您学习了如何使用SQLite GROUP_CONCAT()函数将列中的所有非空值连接起来。