Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / pl/sql Как реализовать переход на следующий уровень поиска / 12 сообщений из 12, страница 1 из 1
23.10.2020, 17:14
    #40011314
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
Добрый день, подскажите как реализовать

Есть функция , в ней

cnt_fio:= - вычисляемый параметр

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
with
a0 as
(
Select c.fio, d.*, c.name, c.klass from avg
join plp d
on d.lvl=0 and c.segemnt_mk=d.segemnt_id and c.klass and = d.class and c.name=d.name
),

a1 as
(
Select c.fio, d.*, c.tb, c.industry from avg
join plp d
on d.lvl=1 and c.segemnt_mk=d.segemnt_id and c.klass and = d.class
)

Select * from
(
Select * from f0
union all
Select * from f2
) where lvl = 



Как в pl/sql или sql реализовать переход на следующий уровень поиска если cnt_fio<=10, то есть если на уровне f0 cnt_fio <10 перейти на след уровень f1 и так далее пока cnt_fio станет >10
...
Рейтинг: 0 / 0
23.10.2020, 17:45
    #40011333
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
x17.mstuКак в pl/sql или sql реализовать переход на следующий уровень поиска если cnt_fio<=10, то
есть если на уровне f0 cnt_fio <10 перейти на след уровень f1 и так далее пока cnt_fio
станет >10

Код: sql
1.
2.
3.
4.
5.
loop
   exit when cnt_fio > 10;
   /* пошёл на следующий уровень */
   cnt_fio := cnt_fio + 1;
end loop;


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.10.2020, 23:22
    #40011451
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
Dimitry Sibiryakov,

Не понял зачем в цикле прибавляете cnt_fio := cnt_fio + 1; ?

Каким образом это поможет посчитать lvl , если lvl=0 в union all должна попадать только выборка из f0,
если lvl=1 в union all должен попадать только выборка из f1

Select * from
(
Select * from f0
union all
Select * from f2
) where lvl =[X]
...
Рейтинг: 0 / 0
23.10.2020, 23:30
    #40011454
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
x17.mstu,
кроме тебя никто твои шифровки не понимает.

Как только нормально сформулируешь хотелки, есть 90% шанс, что сам поймёшь, как нужно делать.
...
Рейтинг: 0 / 0
24.10.2020, 00:26
    #40011466
graycode
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
x17.mstu
Каким образом это поможет посчитать lvl , если lvl=0 в union all должна попадать только выборка из f0,
если lvl=1 в union all должен попадать только выборка из f1

Зачем union all?
...
Рейтинг: 0 / 0
24.10.2020, 12:14
    #40011515
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
Правильный Вася
x17.mstu,
кроме тебя никто твои шифровки не понимает.

Как только нормально сформулируешь хотелки, есть 90% шанс, что сам поймёшь, как нужно делать.
я думал, что я один нихрена не понял
...
Рейтинг: 0 / 0
27.10.2020, 10:04
    #40012095
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
andreymx,

Я вот что имел ввиду если f0 не джойнится на f1 , тогда должны джойнить на f2 и так далее по иерархии.

Только как я понимаю full join дорогая операция

full join как то можно переписать на union ?

Select * from f0 full join f1 on f0.inn = f1.inn and f1.inn is null and avg_client<10
full join f2 on f0.inn = f2.inn and f2.inn is null and f1.inn is null and avg_client<10
...
Рейтинг: 0 / 0
27.10.2020, 12:21
    #40012148
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
x17.mstu,

выложи тестовый пример
народ подтянется
...
Рейтинг: 0 / 0
27.10.2020, 13:11
    #40012165
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
Наверное, имелось ввиду что-то подобное:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
test> with t1 as (select 1 id from dual union all select 2 from dual
  2         union all select 3 from dual union all select 4 from dual),
  3  t2 as (select 1 id, 2 val from dual union all select 3, 2 from dual),
  4  t3 as (select 1 id, 3 val from dual union all select 2, 3 from dual)
  5  select t1.id, coalesce(t2.val, t3.val, 100)
  6  from t1, t2, t3
  7  where t1.id=t2.id(+) and t1.id=t3.id(+)
  8  /

        ID COALESCE(T2.VAL,T3.VAL,100)
---------- ---------------------------
         1                           2
         2                           3
         4                         100
         3                           2

4 rows selected.
...
Рейтинг: 0 / 0
27.10.2020, 13:15
    #40012167
K790
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
авторwhere lvl =[X]
понятно, только непонятно что вы хотите добиться?
...
Рейтинг: 0 / 0
27.10.2020, 13:30
    #40012174
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
x17.mstu,

мож ВАм надо
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
Select * from
 (
  Select 0 lvl,f0.* from f0
  union all
  Select 1 lvl,f1.* from f1
  union all
  Select 2 lvl,f2.* from f2
 ) where lvl = 0 -- 1 --2


?

.....
stax
...
Рейтинг: 0 / 0
27.10.2020, 18:53
    #40012328
graycode
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pl/sql Как реализовать переход на следующий уровень поиска
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / pl/sql Как реализовать переход на следующий уровень поиска / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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