首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除重复项并将多行合并为单行

删除重复项并将多行合并为单行
EN

Stack Overflow用户
提问于 2018-03-05 18:26:04
回答 1查看 53关注 0票数 0

我的一个表中有如下数据

代码语言:javascript
复制
            ID  SOURCE      TARGET          TEL1                  TELE1    TELE2    
            ---------------------------------------------------------------------------------     
            1   TEL         TEL1         5RBTTX4016/8                                                                                                                                                                                                                                                                                                                                                                                                                                                             
            1   TEL         TEL1         5RBTTX4018                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
            1   TEL         TEL1          5RBTTX4016

我希望数据分布在空白的列中。我希望期望的输出如下所示。

代码语言:javascript
复制
            ID  SOURCE      TARGET          TEL1                           TELE1                      TELE2 
            --------------------------------------------------------------------------------------------------     
            1   TEL         TEL1            5RBTTX4016/8                                                                                                                                                                                                                                                                                                                                                                                                                                                              
            1   TEL         TELE1                                            5RBTTX4018                                                                                                                                                                                                                                                                                                                                                                                                                               
            1   TEL         TELE2                                                                       5RBTTX4016

将其保存在如下所示的单个文件中也是可以的:

代码语言:javascript
复制
            ID  SOURCE      TARGET                         TEL1                        TELE1                      TELE2 
            ----------------------------------------------------------------------------------------------------------------    
            1   TEL         TEL1,TELE1,TELE2            5RBTTX4016/8                5RBTTX4016                    5RBTTX4018

IMP -Please注意到,由于数据将被移动到不同的列,因此列名将被捕获在“目标”列中。我有大约100个这样的身份证。ID =1只是一个例子。

我试过了:

代码语言:javascript
复制
            SELECT id,COALESCE(NULLIF(TEL1,''), TELE3)
            FROM table_name 

我如何才能做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2018-03-09 18:53:17

如果在数据目标中是行号

代码语言:javascript
复制
ID  SOURCE      TARGET               TEL1                  TELE1    TELE2    
        ---------------------------------------------------------------------------------     
        1   TEL         TEL1        5RBTTX4016/8                                                                                                                                                                                                                                                                                                                                                                                                                                                             
        1   TEL         TELE1       5RBTTX4018                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
        1   TEL         TELE2       5RBTTX4016

然后,您可以使用以下查询:

代码语言:javascript
复制
SELECT
ID,[SOURCE],STRING_AGG([TARGET], ', ') AS [TARGET],
MAX(CASE WHEN [TARGET] = 'TEL1' THEN [TEL1] ELSE NULL END) AS TEL1,
MAX(CASE WHEN [TARGET] = 'TELE1' THEN [TEL1] ELSE NULL END) AS TELE1,
MAX(CASE WHEN [TARGET] = 'TELE2' THEN [TEL1] ELSE NULL END) AS TELE2
FROM
    Mytable
GROUP BY
    ID,[SOURCE]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49108258

复制
相关文章

相似问题

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