2016-10-12 2 views
2

У меня есть таблица, где у меня есть столбцы NEW_VERSION и OLD_VERSION OLD_VERSION также имеет более старую версию. мне нужно сделать запрос, который будет выбирающий всю историю версийКак сделать цикл выделения sql (простой рекурсивный запрос)

Например: Таблица versions_table:

OLD_VERSION | NEW_VERSION 
10.333  11.111 
38.888  39.999 
37.777  38.888 
9.222   10.333 
8.111   9.222 
7.999   8.111 
36.666  37.777 
35.555  36.666 

Мы знаем только новейшую версию «11.111». Для запроса SELECT * FROM versions_table WHERE NEW_VERSION = 11.111 ... Выход должен быть:

OLD_VERSION | NEW_VERSION 
    10.333  11.111 
    9.222   10.333 
    8.111   9.222 
    7.999   8.111 

Не могли бы вы мне посоветовать, что подходящий подход к этому?

Спасибо!

+1

является то, что данные образцы таблиц, или ожидаемый результат? Нам нужны оба! Также покажите нам свою текущую попытку запроса! – jarlh

+0

Ожидаемый результат должен быть здесь. Может помочь лучше, если он знает, что ожидаемый результат – XING

+0

Не можете ли вы просто написать 'SELECT * FROM version_table WHERE NEW_VERSION <= 11.111 ...' – Jens

ответ

3

Это (простой) Рекурсивный запрос:

select * 
from versions 
start with new_version = '11.111' 
connect by prior old_version = new_version; 
+0

Спасибо, это то, что мне нужно. –

Смежные вопросы