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

И никаких фокусов
...
Рейтинг: 0 / 0
11.03.2005, 11:53
    #32955204
Vadim_Maximov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
Также еще можно поискать по stragg (начиная с девятки)
Тынц
...
Рейтинг: 0 / 0
11.03.2005, 11:54
    #32955211
rgarif
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
хе :)
а без функции?
...
Рейтинг: 0 / 0
11.03.2005, 11:55
    #32955213
Vadim_Maximov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
rgarifхе :)
а без функции?
Совсем без функции - никак.
А с групповой - см. мой предыдущий пост.
...
Рейтинг: 0 / 0
11.03.2005, 12:19
    #32955316
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
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
11.03.2005, 13:01
    #32955465
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
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
11.03.2005, 13:45
    #32955628
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
Анонима как прспособить к более сложному случаю:
Код: 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
Период между сообщениями больше года.
24.03.2006, 16:35
    #33624117
Ales Protiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
для коллекции:
Код: 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
24.03.2006, 16:40
    #33624141
Ales Protiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
Аноним
а как прспособить к более сложному случаю:
Код: 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
18.05.2006, 17:31
    #33736527
Alexander Us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
К сожалению, приведённый выше пример с 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
28.02.2007, 16:48
    #34361309
Reves
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
Млин неужель никто не добил за год?
Пришлось самому ковыряться 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
28.02.2007, 16:54
    #34361339
Jannny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
RevesМлин неужель никто не добил за год?Вы серьезно? :)

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

JannnyМожно ещё попробовать найти автора и подарить ему результат :)
Я думаю он уже решил свою проблему.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
14.11.2008, 18:08
    #35655242
bde_dn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
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
15.11.2008, 07:28
    #35655748
Результат SELECT-а в одну строку
bde_dnrgarif,

нужно иметь одну функцию для таких случаевПривет, гробокопатель!!!
Ты и в правду думаешь, что rgarif три года сидит и ждет от тебя ответа???
...
Рейтинг: 0 / 0
09.12.2008, 12:44
    #35702326
Katya_83
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
зато я получила ответ:)
...
Рейтинг: 0 / 0
09.12.2008, 13:41
    #35702553
Результат SELECT-а в одну строку
Katya_83зато я получила ответ:)Для этого вполне достаточным было прочитать местный ТОП популярных вопросов ;)
...
Рейтинг: 0 / 0
27.05.2009, 15:10
    #36010931
nxx
nxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
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
27.05.2009, 15:17
    #36010958
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
nxxкак для данного примера сделать сотрировку по VALUE Разуй глаза :)
...
Рейтинг: 0 / 0
27.05.2009, 15:50
    #36011089
nxx
nxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
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
28.05.2009, 11:03
    #36012602
Andrei Fomichev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
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
Период между сообщениями больше года.
19.09.2010, 20:47
    #36854412
evs-ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
Есть есть три таблицы, 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
19.09.2010, 21:26
    #36854443
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
Код: 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
20.09.2010, 10:57
    #36854886
Zloxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Результат SELECT-а в одну строку
SY,
Для верности еще результат завернуть бы в dbms_xmlgen.convert(<expr>,1), чтобы не получать всякие lt,gt,amp
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Результат SELECT-а в одну строку / 25 сообщений из 45, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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