如何在SQLite中根据IMAGE列合并OBJECT列的多个值?
在SQLite中合并同一图像对应的天体对象
完全可以实现,SQLite内置的GROUP_CONCAT()聚合函数正好满足你的需求,它能将分组内的字符串值拼接成逗号分隔的单字符串。
1. 查询合并后的结果
如果只是需要查看合并后的数据,执行以下SQL:
SELECT IMAGE, GROUP_CONCAT(OBJECT) AS OBJECTS FROM 你的原始表名 GROUP BY IMAGE;
这条语句会按IMAGE列分组,把每组中所有的OBJECT值用逗号连接,返回你需要的结构。
2. 创建新表存储合并结果
如果需要生成一张新表持久化这些合并后的数据,使用CREATE TABLE ... AS SELECT语法:
CREATE TABLE 你的新表名 AS SELECT IMAGE, GROUP_CONCAT(OBJECT) AS OBJECTS FROM 你的原始表名 GROUP BY IMAGE;
执行后会自动创建结构匹配的新表,并填充合并好的数据。
额外说明
- 若需要自定义分隔符,可在
GROUP_CONCAT中指定,比如用分号分隔:GROUP_CONCAT(OBJECT, ';')。 - 若要保证拼接的
OBJECT有固定顺序,可添加排序逻辑:GROUP_CONCAT(OBJECT ORDER BY OBJECT),这样会按对象名称排序后再拼接。
内容的提问来源于stack exchange,提问作者Martin Weiß
相关产品推荐
相关产品推荐

