powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL
9 сообщений из 9, страница 1 из 1
SQL
    #32176143
Глызин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть табл
id number
previd number

допустим она такая
1 1
2 1
3 1
4 3
5 2
6 5
7 4

надо написать запрос типа чтоб я ввел id а он выдал мне цепочку прохождения всю
для 7 это будет так
7->4->3->1
как это сделать проще?
...
Рейтинг: 0 / 0
SQL
    #32176169
Глызин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неужели придеться писать функциб а потом ее еще раз вызвать?
...
Рейтинг: 0 / 0
SQL
    #32176171
Фотография Ося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unonimous pl/sql bloc containing
explicit cursor and pl/sql table
...
Рейтинг: 0 / 0
SQL
    #32176177
Фотография Ося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry,
Anonimous pl/sql block containing
explicit cursor and pl/sql table
...
Рейтинг: 0 / 0
SQL
    #32176198
AndrewS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иерархические запросы не подходят?
...
Рейтинг: 0 / 0
SQL
    #32176208
Глызин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думаю так можно (правда на корявом SQL языке)
proc ($tttt)
{
select idprev from tab where id=$ttt
if ($idprev != $ttt)
proc($idprev)
return $idprev
}
...
Рейтинг: 0 / 0
SQL
    #32176210
Глызин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я приблизительно знаю как сделать мне помощь нужна именно в правильном sql
запросе
Если кто делал раньше такую вещь киньте плиз
...
Рейтинг: 0 / 0
SQL
    #32176270
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO Дерево
...
Рейтинг: 0 / 0
SQL
    #32176276
AndrewS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем:
Код: plaintext
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.
create table hr
(	curr_id int
,	prev_id int
);

select * from hr;
curr_id prev_id
 ------- -----
 
 1 	
 2 	 1 
 3 	 1 
 4 	 3 
 5 	 2 
 6 	 5 
 7         4 

select *
  from hr
connect by prior prev_id = curr_id
start with curr_id =  7 
;
curr_id prev_id
 ------- -----
 
 7 	 4 
 4 	 3 
 3 	 1 
 1 	

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


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