powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Результат SELECT-а в одну строку
25 сообщений из 45, страница 1 из 2
Результат SELECT-а в одну строку
    #32955195
rgarif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знает ли кто нить, какой нить фокус чтобы:
SELECT ID FROM MY_TAB
все ID вывел одной строкой
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #32955201
_eater
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Элементарно Ватсон
Пишешь sql функцию которая конкатенирует результат курсора в одну строку и возвращает его в сиквел стейтмент

И никаких фокусов
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #32955204
Фотография Vadim_Maximov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также еще можно поискать по stragg (начиная с девятки)
Тынц
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #32955211
rgarif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хе :)
а без функции?
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #32955213
Фотография Vadim_Maximov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgarifхе :)
а без функции?
Совсем без функции - никак.
А с групповой - см. мой предыдущий пост.
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #32955316
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgarifа без функции?Но через ж...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select *
  from
  ( select ltrim(sys_connect_by_path(id, ','), ',') as "IDs"
      from
      ( select id, lag(id) over (order by id) as prev_id
          from MY_TAB
      )
      start with prev_id is null
      connect by prev_id = prior id
      order by  1  desc
  )
  where rownum =  1 
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #32955465
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select *
  from
  ( select ltrim(sys_connect_by_path(id, ','), ',') as "IDs"
      from
      ( select id, lag(id) over (order by id) as prev_id
          from MY_TAB
      )
      start with prev_id is null
      connect by prev_id = prior id
      order by  1  desc
  )
  where rownum =  1 


а как прспособить к более сложному случаю:
Код: plaintext
1.
2.
3.
4.
5.
name  value
------ ------
name1 value1
name1 value2
name2 value1

должно получиться:
Код: plaintext
1.
2.
3.
4.
name  val
----- -------------
name1 value1,value2
name2 value1
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #32955628
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анонима как прспособить к более сложному случаю:
Код: plaintext
1.
2.
3.
4.
name  val
----- -------------
name1 value1,value2
name2 value1
Для головы на плечах - несложное занятие :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select acquirer_operation_list_id, max("IDs") as "IDs"
  from
  ( select acquirer_operation_list_id, ltrim(sys_connect_by_path(id, ','), ',') as "IDs"
      from
      ( select acquirer_operation_list_id, id, 
            lag(id) over (partition by acquirer_operation_list_id order by id) as prev_id
          from op_operation
      )
      start with prev_id is null
      connect by prev_id = prior id and acquirer_operation_list_id = prior acquirer_operation_list_id
  )
  group by acquirer_operation_list_id
Столбцы сам поменяй :)
На строках при NLS_SORT<>BINARY не исключаю нехороших нюансов.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Результат SELECT-а в одну строку
    #33624117
Фотография Ales Protiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для коллекции:
Код: plaintext
1.
2.
3.
4.
select 
sys_xmlagg(xmlelement(col, OBJECT_NAME||',')).extract('/ROWSET/COL/text()').getclobval()  
from all_objects 
where rownum <  10000 ;
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #33624141
Фотография Ales Protiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аноним
а как прспособить к более сложному случаю:
Код: plaintext
1.
2.
3.
4.
5.
name  value
------ ------
name1 value1
name1 value2
name2 value1

должно получиться:
Код: plaintext
1.
2.
3.
4.
name  val
----- -------------
name1 value1,value2
name2 value1


Код: plaintext
1.
2.
3.
select 
sys_xmlagg(xmlelement(col, VALUE||',')).extract('/ROWSET/COL/text()').getclobval()  
from TABLE_NAME
group by NAME;
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #33736527
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению, приведённый выше пример с sys_xmlagg пересортирует строки.

Есть ли возможность склеить строки предварительно отсортировав их по полю T$LFD2 в приведённом ниже примере:?
Код: plaintext
1.
2.
3.
4.
5.
SELECT  
sys_xmlagg(xmlelement(col, trim(T$TEXT) || chr( 13 ))).extract('/ROWSET/COL/text()').getclobval()  "TEXT"
 from  tucarc041100
 where
 and  T$INVN=:KEY2
group by T$INVN,T$KENN,T$LFD1

РS: подзапрс с сортировкой не помогает
РРS: оракул 9.1
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #34361309
Reves
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Млин неужель никто не добил за год?
Пришлось самому ковыряться 1,5 часа, т.к. я с XML никогда дело не имел

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Select 
rtrim(to_char(
         sys_xmlagg(
                      xmlelement( "QWER", xmlagg( xmlelement("COL", name_par || ',')
                                                            Order by name_par
                                                            )
                                     )
                    ).extract('ROWSET/QWER/COL/text()').getclobval()
              ),',') TEXT
From ANY_TABLE 
Group by name_par

Oracle 9i
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #34361339
Jannny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RevesМлин неужель никто не добил за год?Вы серьезно? :)

RevesПришлось самому ковыряться 1,5 часа, т.к. я с XML никогда дело не имелНу тоже в общем неполохо :) Познакомиться с новым синтаксисом никогда не вредно :) Можно ещё попробовать найти автора и подарить ему результат :)
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #34361388
Reves
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JannnyВы серьезно? :)
Эт, я чет поторопился - Order by не работает в данном контексте, но сортируется всё правильно. Надо ишо год подумать :)

JannnyМожно ещё попробовать найти автора и подарить ему результат :)
Я думаю он уже решил свою проблему.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Результат SELECT-а в одну строку
    #35655242
bde_dn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgarif,

нужно иметь одну функцию для таких случаев

create or replace function c2s(c sys_refcursor,dlm varchar2:=',') return varchar2 is
res varchar2(4000);
rs varchar2(2000);
begin
-- open c;
loop
fetch c into rs;
exit when c%notfound;
res:=res||dlm||rs;
end loop;
close c;
return substr(res,length(dlm)+1);
end c2s;

select c2s(cursor(select to_char(id) from my_table /*oder,group,...*/)) from dual;

В SQL больше 4000 не дает, если надо больше в функции res clob.
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #35655748
bde_dnrgarif,

нужно иметь одну функцию для таких случаевПривет, гробокопатель!!!
Ты и в правду думаешь, что rgarif три года сидит и ждет от тебя ответа???
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #35702326
Katya_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зато я получила ответ:)
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #35702553
Katya_83зато я получила ответ:)Для этого вполне достаточным было прочитать местный ТОП популярных вопросов ;)
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #36010931
nxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ales ProtivАноним
а как прспособить к более сложному случаю:
Код: plaintext
1.
2.
3.
4.
5.
name  value
------ ------
name1 value1
name1 value2
name2 value1

должно получиться:
Код: plaintext
1.
2.
3.
4.
name  val
----- -------------
name1 value1,value2
name2 value1


Код: plaintext
1.
2.
3.
select 
sys_xmlagg(xmlelement(col, VALUE||',')).extract('/ROWSET/COL/text()').getclobval()  
from TABLE_NAME
group by NAME;


подскажите, как для данного примера сделать сотрировку по VALUE
внутри CLOB
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #36010958
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nxxкак для данного примера сделать сотрировку по VALUE Разуй глаза :)
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #36011089
nxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicnxxкак для данного примера сделать сотрировку по VALUE Разуй глаза :)


авторSQL> select o.owner
2 ,sys_xmlagg(xmlelement( "QWER", xmlagg( xmlelement("COL", o.object_name || ',') Order by o.obj
ect_name
3 )
4 )
5 ).extract('ROWSET/QWER/COL/text()').getclobval()
6 from all_objects o
7 where rownum < 10000
8 group by o.owner
9 /
select o.owner
*
ERROR at line 1:
ORA-00937: not a single-group group function



что-то не работает
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #36012602
Фотография Andrei Fomichev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nxx
что-то не работает
Код: plaintext
1.
2.
3.
4.
5.
select owner
  ,sys_xmlagg(xmlelement( "QWER", x) ).extract('ROWSET/QWER/COL/text()').getclobval() s
from 
  (select o.owner, xmlagg( xmlelement("COL", o.object_name || ',') order by o.object_name) x
   from all_objects o where rownum <  10000  group by o.owner ) a
group by owner
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Результат SELECT-а в одну строку
    #36854412
evs-ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть есть три таблицы, TABLE1, TABLE2, TABLE3.
USERS
ID NUMBER(20)
NAME VARCHAR2(64)

RIGHTS
ID NUMBER(20)
USER_ID NUMBER(20)
GROUP_ID NUMBER(20)

GROUPS
ID (NUMBER(20)
NAME VARCHAR(20)

Как сделать такой запрос
Код: plaintext
1.
2.
3.
SELECT U.NAME USERNAME, G.NAME GROUPNAME
FROM USERS U, RIGHTS R, GROUPS G
WHERE R.USER_ID=U.ID AND R.GROUP_ID=G.ID

чтобы значения поля GROUPNAME там, где USERNAME совпадает писались не в несколько строк, а через запятую?
чтобы названия групп выводились в одну строку через запятую?
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #36854443
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
SELECT U.NAME USERNAME, RTRIM((XMLAGG(XMLELEMENT(e,G.NAME,',').EXTRACT('//text()')),',') GROUPNAME
FROM USERS U, RIGHTS R, GROUPS G
WHERE R.USER_ID=U.ID AND R.GROUP_ID=G.ID
GROUP BY U.NAME
/

For example:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> select  job,
   2           rtrim(xmlagg(xmlelement(e,ename,',').extract('//text()')),',') ename_list
   3     from  emp
   4     group by job
   5   /

JOB       ENAME_LIST
--------- ----------------------------------------
ANALYST   SCOTT,FORD
CLERK     SMITH,JAMES,ADAMS,MILLER
MANAGER   JONES,CLARK,BLAKE
PRESIDENT KING
SALESMAN  ALLEN,WARD,TURNER,MARTIN

SQL> 

SY.
...
Рейтинг: 0 / 0
Результат SELECT-а в одну строку
    #36854886
Zloxa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY,
Для верности еще результат завернуть бы в dbms_xmlgen.convert(<expr>,1), чтобы не получать всякие lt,gt,amp
...
Рейтинг: 0 / 0
25 сообщений из 45, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Результат SELECT-а в одну строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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