首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite:拆分代码字符串,在另一个表中找到每个代码,并将值作为一个字符串返回

SQLite:拆分代码字符串,在另一个表中找到每个代码,并将值作为一个字符串返回
EN

Stack Overflow用户
提问于 2018-02-06 03:24:53
回答 1查看 259关注 0票数 1

我的SQLite数据库表(fldSuit)中有一列,它将限制列表的代码存储在一个字符串中。这些代码在一个单独的表(fldAtts)中都有一个描述。例子如下:

代码语言:javascript
复制
fldsSuit
fld_id    fld_limits
1         HR, HST

fldAtts
fld_att_code     fld_att_desc
HCA              Hindrance - Canals
HR               Hindrance - Row Width
HST              Hindrance - Stones

如何查询数据库的外观:

代码语言:javascript
复制
Desired Output
Field     Limitations
1         Hindrance - Row Width, Hindrance - Stones

希望你能帮我。

编辑:将实际名称放在上面,然后尝试下面的解决方案:

代码语言:javascript
复制
SELECT
    f.fld_id, 
    group_concat(a.fld_att_desc) as Limitations
FROM fldsSuit f
LEFT JOIN fldAtts a
    ON ',' || REPLACE(Limitations, ' ', '') || ',' LIKE
    '%,' || a.fld_att_code || ',%'
GROUP BY
    f.fld_id;
EN

回答 1

Stack Overflow用户

发布于 2018-02-06 03:32:17

SQLite有一个GROUP_CONCAT函数,可以在这里提供帮助。我们可以按字段进行聚合,然后获取值的组连接。联接条件很混乱,因为我们需要将第二个表中的单个代码与第一个表中的CSV限制列表相匹配。

代码语言:javascript
复制
SELECT
    t1.Field,
    GROUP_CONCAT(t2.Value) AS Limitations
FROM Table1 t1
LEFT JOIN Table2 t2
    ON ',' || REPLACE(t1.Limitations, ' ', '') || ',' LIKE
           '%,' || t2.Code || ',%'
GROUP BY
    t1.Field;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48634988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档