Как объединить несколько результатов в один столбец в oracle? - PullRequest
0 голосов
/ 27 апреля 2020

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

              customers

 id name     client_type  date
 5  Fernando   5          27/04/2020
 6  paco       6          27/04/2020
 7  jose       5          27/04/2020
 8  angel      6          27/04/2020
 9  maria      6          27/04/2020

У меня есть следующий запрос

select client_type from customers where date = sysdate group by client_type;

, который дал следующий результат

type_clients
 5
 6

Мне нужно, чтобы следующий результат вернул

type_clients
5,6

Я пытался со следующим

select listgg (client_type, ',') within group (order by client_type)
  from CUSTOMERS
 where date = sysdate

Но я вернул больше результатов

type_clients
5,5,6,6,6

Они помогли бы мне решить мою проблему, большое спасибо

1 Ответ

0 голосов
/ 28 апреля 2020

Если вы используете Oracle 12 C или выше, вы можете напрямую использовать различные предложения внутри LISTAGG -

select listgg (distinct client_type, ',') within group (order by client_type)
  from CUSTOMERS
 where date = sysdate

Однако, если вы используете ниже 12 C, вы должны использовать код ниже -

select listgg (client_type, ',') within group (order by client_type)
  from (select distinct client_type
          from CUSTOMERS
         where date = sysdate)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...