首页 > 解决方案 > 合并具有相同列值的行

问题描述

我有一个表,表中的数据存储了这样的东西

ITEM        GROUP                           CHAR1           CHAR2      CHAR3

240-000199  2x_P3_CATALOG_VALUES_ATTGRP     PWA (SMT+TH)    M-R0027 
240-000199  2x_P3_CATALOG_VALUES_ATTGRP                                IBIZA REFRESH
240-000199  Inventory Org                   LH1     
240-000199  Inventory Org                   LS1     
240-000199  Inventory Org                                              CD1 ; LH1

我想获取这样的结果

ITEM        GROUP                           CHAR1           CHAR2      CHAR3

240-000199  2x_P3_CATALOG_VALUES_ATTGRP     PWA (SMT+TH)    M-R0027    IBIZA REFRESH
240-000199  Inventory Org                   LH1     
240-000199  Inventory Org                   LS1                        CD1 ; LH1

或者它是否像这样显示并不重要

ITEM        GROUP                           CHAR1           CHAR2      CHAR3

240-000199  2x_P3_CATALOG_VALUES_ATTGRP     PWA (SMT+TH)    M-R0027    IBIZA REFRESH
240-000199  Inventory Org                   LH1                        CD1 ; LH1
240-000199  Inventory Org                   LS1                        CD1 ; LH1

我想要的是根据 Group 和 item 进行分组并合并值为空的行

标签: sqloracle

解决方案


我不确定这在 Oracle 中是否同样有效,但它适用于 SQL Server

 Select Distinct T1.[Item], T1.[Group], T2.Char1, T3.char2, T4.Char3 
 from ItemsG T1 
 Left Outer Join ItemsG T2 
     on T1.Item = T2.Item and T1.[Group] = T2.[Group] and T2.char1 is Not null
 Left Outer Join ItemsG T3
    on T1.Item = T3.Item and T1.[Group] = T3.[Group] and T3.char2 is not null
 Left Outer Join ItemsG T4
    on T1.Item = T4.Item and T1.[Group]= T4.[Group] and T4.char3 is not null

推荐阅读