Как я могу удалить дубликаты данных в запросе нескольких столбцов - PullRequest
0 голосов
/ 19 ноября 2018

Я только что задал вопрос о том, как удалить дубликаты данных в столбце

Как удалить дубликаты данных в столбце

этот код ниже может удалить дубликаты встолбец

with data as
(
  select 'apple, apple, apple, apple' col from dual
)
select listagg(col, ',') within group(order by 1) col
  from (
        select distinct regexp_substr(col, '[^,]+', 1, level) col
          from data
        connect by level <= regexp_count(col, ',')
       )

следующий вопрос сейчас я не знаю, как удалить данные в несколько столбцов

select 'apple, apple, apple' as col1, 
       'prince,prince,princess' as col2, 
       'dog, cat, cat' as col3
  from dual;

Я хотел бы показать

COL1     COL2                COL3
-----    ----------------    --------
apple    prince, princess    dog, cat

1 Ответ

0 голосов
/ 19 ноября 2018

Вы можете использовать такую ​​комбинацию:

select  
    (
    select listagg(str,',') within group (order by 0)
      from
     (
      select distinct trim(regexp_substr('apple, apple, apple','[^,]+', 1, level)) as str
        from dual
     connect by level <= regexp_count('apple, apple, apple',',') + 1
     )
    ) as str1,
    (
    select listagg(str,',') within group (order by 0)
      from
     (
      select distinct trim(regexp_substr('prince,prince,princess','[^,]+', 1, level)) as str
        from dual
     connect by level <= regexp_count('prince,prince,princess',',') + 1
     )
    ) as str2,   
    (
    select listagg(str,',') within group (order by 0)
      from
     (
      select distinct trim(regexp_substr('dog, cat, cat','[^,]+', 1, level)) as str
        from dual
     connect by level <= regexp_count('dog, cat, cat',',') + 1
     )
    ) as str3    
 from dual;

 STR1         STR2           STR3
 ------  ---------------   --------
 apple   prince,princess   cat,dog

Rextester Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...