powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Аналог LISTAGG
13 сообщений из 13, страница 1 из 1
Аналог LISTAGG
    #39555969
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскажите пожалуйста функцию подобную LISTAGG , без использования GROUP BY или как можно собрать данные все в одну строку ?
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39555970
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122Поскажите пожалуйста функцию подобную LISTAGG , без использования GROUP BY или как можно собрать данные все в одну строку ? ТОП №14
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39555973
Goofy122как можно собрать данные все в одну строку ?|| не требует group by
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39556049
Connect_by
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можешь попробовать connect by на самого себя с sys_connect_by_path, если не ошибся в названии функции.
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39556072
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122Поскажите пожалуйста функцию подобную LISTAGG , без использования GROUP BY или как можно собрать данные все в одну строку ?

или так
Код: sql
1.
2.
3.
SELECT listagg(ROWNUM, ', ') WITHIN GROUP(ORDER BY ROWNUM) OVER()
  FROM dual
  connect BY ROWNUM < 11



или так
Код: sql
1.
2.
3.
SELECT listagg(ROWNUM, ', ') WITHIN GROUP(ORDER BY ROWNUM)
  FROM dual
  connect BY ROWNUM < 11


в зависимости от того, что тебе надо
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39556087
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122,

поясните на примере что надо?

для ф-ции listagg group by не нужен
Код: plsql
1.
2.
3.
4.
5.
6.
7.
  1  select listagg(dname, ',') within group(order by null) d_list
  2* from dept
SQL> /

D_LIST
--------------------------------------------------------------------
ACCOUNTING,OPERATIONS,RESEARCH,SALES



.....
stax
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39556115
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxGoofy122,

поясните на примере что надо?

для ф-ции listagg group by не нужен
Код: plsql
1.
2.
3.
4.
5.
6.
7.
  1  select listagg(dname, ',') within group(order by null) d_list
  2* from dept
SQL> /

D_LIST
--------------------------------------------------------------------
ACCOUNTING,OPERATIONS,RESEARCH,SALES




.....
staxу тебя ж тут есть
неявный
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39556146
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxу тебя ж тут есть
неявный
нюансы терминологии

в зависимости есть, или нет group by select ведет себя по разному

поетому для себя считаю что group by нет в тч неявного

.....
stax
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39556298
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxGoofy122Поскажите пожалуйста функцию подобную LISTAGG , без использования GROUP BY или как можно собрать данные все в одну строку ?

или так
Код: sql
1.
2.
3.
SELECT listagg(ROWNUM, ', ') WITHIN GROUP(ORDER BY ROWNUM) OVER()
  FROM dual
  connect BY ROWNUM < 11



или так
Код: sql
1.
2.
3.
SELECT listagg(ROWNUM, ', ') WITHIN GROUP(ORDER BY ROWNUM)
  FROM dual
  connect BY ROWNUM < 11


в зависимости от того, что тебе надо

Код: plsql
1.
2.
3.
SELECT dummy ,  listagg(ROWNUM, ', ') WITHIN GROUP(ORDER BY ROWNUM)
  FROM dual
  connect BY ROWNUM < 11



а если добавит еще одну колонку , требует включить в group by.
A с over() в конце работает только с dual стоит подключить другую таблицу выдает ошибку
ORA-01489: result of string concatenation is too long
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39556489
Bobby Z.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goofy122A с over() в конце работает только с dual стоит подключить другую таблицу выдает ошибку
ORA-01489: result of string concatenation is too longА это оттого, что VARCHAR2 имеет ограничение по длине: 4000 байт на < 12c, 32767 байт на 12c+ c compatible=12.0.0.0 и выше и max_string_size=extended. То есть, Ваша другая таблица производит строки длиннее.
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39556794
Фотография Goofy122
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bobby Z.Goofy122A с over() в конце работает только с dual стоит подключить другую таблицу выдает ошибку
ORA-01489: result of string concatenation is too longА это оттого, что VARCHAR2 имеет ограничение по длине: 4000 байт на < 12c, 32767 байт на 12c+ c compatible=12.0.0.0 и выше и max_string_size=extended. То есть, Ваша другая таблица производит строки длиннее.


понял спасибо
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39557084
wellvk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Goofy122, посмотрите ещё в сторону xmlagg, мне данная функция подошла, когда был аналогичная задачка...
...
Рейтинг: 0 / 0
Аналог LISTAGG
    #39557349
12c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12c
Гость
Код: sql
1.
listagg(col,'; '  ON OVERFLOW TRUNCATE)


Вещь, если пользователям не вся простыня нужна)))
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Аналог LISTAGG
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]