powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как отсортировать без order by
11 сообщений из 11, страница 1 из 1
Как отсортировать без order by
    #39968690
rjrfrjrf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал запрос который находит начало и конец периода отпусков(это даты), теперь надо придумать как отсортировать и соединить эти даты, order by, rownum использовать нелья!
...
Рейтинг: 0 / 0
Как отсортировать без order by
    #39968714
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обломись. ORDER BY это единственный метод сортировки резалтсета.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как отсортировать без order by
    #39968733
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть один перректальный способ:
Код: plsql
1.
2.
3.
SELECT username FROM all_users
UNION
SELECT username FROM all_users


Только вот зачем такие самоограничения?
...
Рейтинг: 0 / 0
Как отсортировать без order by
    #39968734
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася
Есть один перректальный способ:
Чтобы повысить шансы, нужно еще захинтовать, чтобы оптимизатор не выбрал hash unique вместо ожидаемого тобой sort unique.
...
Рейтинг: 0 / 0
Как отсортировать без order by
    #39968755
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хинтовать, то тогда просто создать индекс и захинтовать его

А если продолжать эротические фантазии ))), то и индекс не нужен. Просто данные в такую табличку запихать. Думаю, по умолчанию, будут возвращаться отсортированными.
...
Рейтинг: 0 / 0
Как отсортировать без order by
    #39968768
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Просто данные в такую табличку запихать. Думаю, по умолчанию, будут возвращаться отсортированными.
Все равно мимо. Будет зависеть об выбранного оптимизатором пути доступа. Магию данных не предлагать.
...
Рейтинг: 0 / 0
Как отсортировать без order by
    #39968810
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно через associative array, но все равно есть некоторая вероятность оптимайзер по...рит NO_PARALLEL:

Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
CREATE OR REPLACE
  FUNCTION ORDER_BY_ENAME
    RETURN SYS.ODCIVARCHAR2LIST
    PIPELINED
    IS
        CURSOR V_CUR
          IS
            SELECT  /*+ NO_PARALLEL(EMP) */
                    ENAME
              FROM  EMP;
        TYPE LIST_TYPE
          IS TABLE OF NUMBER
            INDEX BY VARCHAR2(20);
        V_LIST LIST_TYPE;
        V_INDEX VARCHAR2(20);
    BEGIN
        FOR V_REC IN V_CUR LOOP
          IF V_LIST.EXISTS(V_REC.ENAME)
            THEN V_LIST(V_REC.ENAME) := V_LIST(V_REC.ENAME) + 1;
            ELSE
                 V_LIST(V_REC.ENAME) := 1;
          END IF;
        END LOOP;
        V_INDEX := V_LIST.FIRST;
        WHILE V_INDEX IS NOT NULL LOOP
          FOR V_I IN 1..V_LIST(V_INDEX) LOOP
            PIPE ROW(V_INDEX);
          END LOOP;
          V_INDEX := V_LIST.NEXT(V_INDEX);
        END LOOP;
END;
/
select  *
  from  table(ORDER_BY_ENAME)
/


COLUMN_VALUE
--------------------------------------------------------------------------------
ADAMS
ALLEN
BLAKE
CLARK
FORD
JAMES
JONES
KING
MARTIN
MILLER
SCOTT
SMITH
TURNER
WARD

14 rows selected.

SQL>



SY.
...
Рейтинг: 0 / 0
Как отсортировать без order by
    #39968896
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Обломись. ORDER BY это единственный метод сортировки резалтсета.

connect by отсортирует

.....
stax
...
Рейтинг: 0 / 0
Как отсортировать без order by
    #39968919
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax

connect by отсортирует


А это как?

SY.
...
Рейтинг: 0 / 0
Как отсортировать без order by
    #39968924
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный Вася
Есть один перректальный способ:
Код: plsql
1.
2.
3.
SELECT username FROM all_users
UNION
SELECT username FROM all_users


Только вот зачем такие самоограничения?

препод - самодур )
...
Рейтинг: 0 / 0
Как отсортировать без order by
    #39969205
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SY,

если есть дубли чутку допилить
Код: 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.
27.
28.
  1  with e as (
  2  select
  3    e1.*
  4   ,(select count(*) from emp e2 where e2.ename<e1.ename) cc
  5  from emp e1)
  6* select * from e start with cc=0 connect by cc=prior cc+1
SQL> /

     EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM     DEPTNO         CC
---------- ---------- --------- ---------- ---------- ---------- ---------- ---------- ----------
      7876 ADAMS      CLERK           7788 12.01.1983       1100                    20          0
      7499 ALLEN      SALESMAN        7698 20.02.1981       1600        300         30          1
      7698 BLAKE      MANAGER         7839 01.05.1981       2850                    30          2
      7782 CLARK      MANAGER         7839 09.06.1981       2450                    10          3
      7902 FORD       ANALYST         7566 03.12.1981       3000                    20          4
      7900 JAMES      CLERK           7698 03.12.1981        950                    30          5
      7566 JONES      MANAGER         7839 02.04.1981       2975                    20          6
      7839 KING       PRESIDENT            17.11.1981       5000                    10          7
      7654 MARTIN     SALESMAN        7698 28.09.1981       1250       1400         30          8
      7934 MILLER     CLERK           7782 23.01.1982       1300                    10          9
      7788 SCOTT      ANALYST         7566 09.12.1982       3000                    20         10
      7369 SMITH      CLERK           7902 17.12.1980        800                    20         11
      7844 TURNER     SALESMAN        7698 08.09.1981       1500                    30         12
      7521 WARD       SALESMAN        7698 22.02.1981       1250        500         30         13

14 rows selected.

SQL>



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


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