2016-10-12 3 views
2

私はNEW_VERSION列とOLD_VERSION列を持つテーブルを持っています。 OLD_VERSIONも古いバージョンです。 表のVERSIONS_TABLE:SQLのループを選択する方法(単純な再帰的クエリ)

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

ありがとう、それは私が必要なものです。 –

関連する問題