Как объединить данные таблицы конкретных ячеек в Oracle - PullRequest
0 голосов
/ 26 мая 2019

Я хочу условно объединить текстовые ячейки в таблице оракулов в соответствии с числовым атрибутом последовательности (SEQ). Возможно ли это сделать? Мне нужна ваша помощь с запросом.

Например, у меня есть следующая таблица данных:

|-----------------|
|ID|CODE|SEQ|TEXT |
|--|----|---|-----|
|1 |a   |1  |text1|
|1 |a   |2  |text2|
|2 |b   |1  |text3|
|3 |c   |1  |text4|
|4 |d   |1  |text6|
|4 |d   |2  |text7|
|4 |d   |3  |text8|
-------------------

Что я хочу сделать, это создать новую таблицу DATA1, которая объединяет значения TEXT с тем же идентификатором и кодом с объединенными текстами в случае SEQ> 1. Новая таблица должна выглядеть следующим образом:

|-------------------------|
|ID|CODE|TEXT             |
|--|----|-----------------|
|1 |a   |text1 text2      |
|2 |b   |text3            |
|3 |c   |text4            |
|4 |d   |text6 text7 text8|
---------------------------

1 Ответ

1 голос
/ 26 мая 2019

listagg() функция может использоваться с группировкой по идентификатору и коду.

select id, code, 
       listagg(text,' ') within group (order by seq) as text
  from tab
 group by id, code 

Демо

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