Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пятый цвет радуги / 8 сообщений из 8, страница 1 из 1
24.11.2020, 04:34
    #40021603
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пятый цвет радуги
Есть ли способ достать пятый цвет радуги из таблицы, где порядок задан неявно?

Например, будет ли такой код всегда давать одинаковый результат?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with rainbow (color) as (
  select 'red'    from dual union all
  select 'orange' from dual union all
  select 'yellow' from dual union all
  select 'green'  from dual union all
  select 'blue'   from dual union all
  select 'indigo' from dual union all
  select 'violet' from dual
)
select * from rainbow
offset 5 rows -- oracle 12+
fetch next 1 row only;
...
Рейтинг: 0 / 0
24.11.2020, 07:39
    #40021614
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пятый цвет радуги
Консенсус опытных членов форума что эта задача нерешаема в оракле.

22237604
...
Рейтинг: 0 / 0
24.11.2020, 08:26
    #40021617
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пятый цвет радуги
Дебил, прасти госпади
...
Рейтинг: 0 / 0
24.11.2020, 08:42
    #40021619
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пятый цвет радуги
Вячеслав Любомудров,

В коде ТС присутствует предположения что

1) union all не переставляет строки
2) select * сохраняет порядок строк

Без этих двух предположений задача не имеет решения.

Как оно на самом деле - предстоит разобраться.
...
Рейтинг: 0 / 0
24.11.2020, 09:41
    #40021632
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пятый цвет радуги
НеофитSQL,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SQL>[censored]

SQL> with rainbow (color) as (
  2    select 'red'    from dual union all
  3    select 'orange' from dual union all
  4    select 'yellow' from dual union all
  5    select 'green'  from dual union all
  6    select 'blue'   from dual union all
  7    select 'indigo' from dual union all
  8    select 'violet' from dual
  9  )
 10  select * from rainbow
 11  offset 5 rows -- oracle 12+
 12  fetch next 1 row only;

COLOR
------
orange
...
Рейтинг: 0 / 0
24.11.2020, 11:39
    #40021693
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пятый цвет радуги
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> with rainbow (color) as (
  2    select 'red'    from dual union all
  3    select 'orange' from dual union all
  4    select 'yellow' from dual union all
  5    select 'green'  from dual union all
  6    select 'blue'   from dual union all
  7    select 'indigo' from dual union all
  8    select 'violet' from dual
  9  )
 10  select * from rainbow
 11  offset 5 rows -- oracle 12+
 12  fetch next 1 row only;

COLOR 
------
indigo
...
Рейтинг: 0 / 0
24.11.2020, 12:17
    #40021707
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пятый цвет радуги
SQL*Plus,

Это ожидаемое поведение.
...
Рейтинг: 0 / 0
24.11.2020, 12:35
    #40021715
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пятый цвет радуги
в 8-ом оракле не было сортировки order siblings by
потому использовали в древовидном запросе индекс в хинте

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


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