代码之家  ›  专栏  ›  技术社区  ›  AI52487963

建议的方法连接多个列并用分隔符分隔?

  •  0
  • AI52487963  · 技术社区  · 4 年前

    我有一张像这样的桌子

    ROW_ID, ID_A, ID_B, ID_C, ID_D
    1001, A, NULL, NULL, NULL
    1002, A, NULL, B, NULL
    1003, NULL, B, NULL, NULL
    1004, NULL, NULL, C, D
    

    ROW_ID, ID_COMBINED
    1001, "A"
    1002, "A, B"
    1003, "B"
    1004, "C, D"
    

    首先我设置查询,使初始表值是空字符串而不是空字符串,然后使用 CONCATENATE(A,', ', B,', ',C,', ',D) 方法,但这会给我这样的值:

    ROW_ID, ID_COMBINED
    1001, "A,,"
    1002, "A,B,,"
    1003, ",B,,"
    1004, ",,C,D"
    

    NULLIF() 但是,当我用空值合并列时,我会丢失具有如下重写的组合字符串方面:

    ROW_ID, ID_COMBINED
    1001, "A"
    1002, "B"
    1003, "B"
    1004, "D"
    

    1 回复  |  直到 4 年前
        1
  •  1
  •   forpas    4 年前

    你需要这个功能 CONCAT_WS() :

    SELECT ROW_ID,
           CONCAT_WS(',', ID_A, ID_B, ID_C, ID_D) ID_COMBINED
    FROM tablename
    

    demo

    行\u ID ID\U组合
    1002 A、 B类
    B类
    1004