2016-10-12 54 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 versions_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

謝謝,這是我需要的。 –