SAP HANA SQL - объединить несколько строк результатов для одного столбца в одну строку - PullRequest
0 голосов
/ 13 сентября 2018

Я извлекаю данные, и когда я извлекаю текстовое поле, мои результаты для «отдельного идентификатора» иногда дублируются, когда для этого идентификатора имеется несколько результатов. Есть ли способ КОНКАТАТЬ результаты в один столбец / строку, а не дублировать их? Похоже, что есть способы на других платформах SQL, но я не смог найти что-то, что работает в HANA.

Пример
Выберите
Отличительный идентификатор
Из таблицы 1

Если я вытащу только отдельный идентификатор, я получу следующее:

ID
1
2
3
4

Однако, когда я вытащил следующее:
Пример * * тысячи двадцать-пять Выберите
Отличительный идентификатор, текст
Из таблицы 1

Я получаю что-то вроде

ID Text
1 собака
2 кат
2 собаки
3 рыбы
4 птицы
4 лошади

Я пытаюсь объединить текстовое поле, если для каждого идентификатора имеется более 1 строки.

Какими мне нужны результаты (наличие «разрыва» между результатами, чтобы они
были в отдельных строках, было бы даже лучше, но по крайней мере «,» сработало бы):

ID Text
1 собака
2 кот, собака
3 рыбы
4 Птица, Лошадь

1 Ответ

0 голосов
/ 13 сентября 2018

Я вижу, что Киран только что сослался на другой действительный ответ в комментарии, но в вашем примере это сработает.

SELECT ID, STRING_AGG(Text, ',')
FROM TABLE1
GROUP BY ID;

Вы можете заменить ',' другими символами, возможно, '\ n' для разрыва строки

Я бы предостерег от подхода к объединению строк таким способом, если толькоВы хорошо знаете свои данные.Не существует эффективного ограничения на строки и длину строки, которую вы будете генерировать, но HANA будет иметь ограничение на длину строки, поэтому учтите это.

...