powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сортировка внутри строки всех результатов запроса
4 сообщений из 4, страница 1 из 1
Сортировка внутри строки всех результатов запроса
    #40080174
lfbaby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица
Код: sql
1.
CREATE TABLE TABLE (NUM NUMBER(9) NOT NULL, NAME VARCHAR2(80 BYTE))



Нужно вывести все значения из таблицы и сформировать 3 столбец с отсортированными посимвольно значениями из колонки NAME.

Написал запрос
Код: sql
1.
2.
SELECT NUM, NAME, (SELECT LISTAGG (s) WITHIN GROUP (ORDER BY s) FROM (SELECT SUBSTR (T2.NAME2, LEVEL, 1) s FROM DUAL CONNECT BY LEVEL <= LENGTH (T2.NAME2))) NAME_SORT 
FROM TABLE T1 LEFT JOIN (SELECT NAME NAME2 FROM TABLE) T2 ON T1.NUM = T2.NUM



По идее должно работать, но подзапрос не видит идентификатор T2.NAME2 . Как только не крутил, в результате не могу справиться с задачей. Прошу помощи.

Итог нужен такой
Код: plaintext
1.
2.
3.
NUM     NAME      NAME_SORT
1       ВАСЯ      АВСЯ
2       КОЛЯ      КЛОЯ
3       САША      ААСШ
...
Рейтинг: 0 / 0
Сортировка внутри строки всех результатов запроса
    #40080182
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lfbaby,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SQL> ed
Wrote file afiedt.buf

  1  with t as(
  2  select 1 id,'ВАСЯ' name from dual union all
  3  select 2,'ЮЛЯ' from dual)
  4  , tt as (
  5  select
  6   t2.*
  7  ,SUBSTR (T2.NAME, LEVEL, 1) s
  8  from t t2
  9   CONNECT BY LEVEL <= LENGTH (T2.NAME)
 10   and t2.id=prior t2.id
 11   and prior sys_guid() is not null)
 12  select
 13    id
 14   ,max(name) name
 15   ,LISTAGG (s) WITHIN GROUP (ORDER BY s) ls
 16  from tt
 17* group by id
SQL> /

        ID NAME LS
---------- ---- ----------
         1 ВАСЯ АВСЯ
         2 ЮЛЯ  ЛЮЯ




.....
stax
...
Рейтинг: 0 / 0
Сортировка внутри строки всех результатов запроса
    #40080198
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
select  dname,
        xmlcast(
                xmlquery(
                         'codepoints-to-string(for $e in string-to-codepoints(.) order by $e return $e)'
                         passing dname
                         returning content
                        )
                as varchar2(20)
               )
  from  dept
/

DNAME          XMLCAST(XMLQUERY('CO
-------------- --------------------
ACCOUNTING     ACCGINNOTU
RESEARCH       ACEEHRRS
SALES          AELSS
OPERATIONS     AEINOOPRST

SQL>



SY.
...
Рейтинг: 0 / 0
Сортировка внутри строки всех результатов запроса
    #40080399
lfbaby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY, спасибо! Это очень круто, буду изучать xml, не думал, что у него такие возможности в Oracle
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сортировка внутри строки всех результатов запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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