Сгруппируйте две строки в одну в точке данных TOAD - PullRequest
0 голосов
/ 18 апреля 2019

Мой текущий набор результатов ниже:

Case_ID    |   Action_name    |   Status_code

1             John                  Valid

1             Peter                 Valid

Я хочу, чтобы это было

Case_ID      |    Action_name   |    Status_Code

1              John, Peter              Valid

или также может отображаться как

Case_ID       |  Action_name1   |   Action_name2   |   Status_code

1                   John               peter              Valid

Любая возможная информация будет очень полезна. Я попробовал функцию Pivot, но по некоторым причинам я не смог сделать это правильно. Я знаю, что мы можем сделать это на сервере SQL, но я новичок в точке данных TOAD.

1 Ответ

0 голосов
/ 19 апреля 2019

Вы не указали базу данных, которую используете.Если это Oracle, то функция LISTAGG может помочь:

SQL> -- This is your current output:
SQL> with test (case_id, action_name, status_Code) as
  2     (select 1, 'John', 'valid' from dual union all
  3      select 1, 'Peter', 'valid' from dual
  4     )
  5  -- Adjust it using this:
  6  select
  7    case_id,
  8    listagg(action_name, ', ') within group (order by action_name) action_name,
  9    status_code
 10  from test
 11  group by case_id, status_code;

   CASE_ID ACTION_NAME                    STATU
---------- ------------------------------ -----
         1 John, Peter                    valid

SQL>

В противном случае посмотрите, предлагает ли ваша база данных такую ​​функцию агрегация ;Я знаю, что некоторые из них делают.

...