合并sqlite数据库中字段的多个值

问题描述 投票:0回答:1

我有一个包含 3 列的表格(

ID
key
value
):
enter image description here

key
有重复文本,但
value
没有。

如何根据

value
key
的文本合并/追加到一个字段中,用逗号或换行符分隔,并删除
key
的重复文本?
enter image description here

sql database sqlite database-normalization
1个回答
1
投票

如果结果中值的顺序不重要,那么您可以使用聚合和

GROUP_CONCAT()
来完成,这在 SQLite 中不支持
ORDER BY
子句,并且不保证值的顺序:

SELECT MIN(ID) ID, key, GROUP_CONCAT(value) value 
FROM tablename 
GROUP BY key

如果您需要按

ID
排序的值,请使用
GROUP_CONCAT()
窗口函数:

SELECT DISTINCT
       MIN(ID) OVER (PARTITION BY key) ID, 
       key, 
       GROUP_CONCAT(value) OVER (
         PARTITION BY key 
         ORDER BY ID
         ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
       ) value
FROM tablename 
© www.soinside.com 2019 - 2024. All rights reserved.