這是一個簡化的任務,我必須在實際項目中解決。在這個項目中,數據存儲在HSQLDB中。數據通過JDBC訪問。如何結合使用一個SQL查詢獨立排序的一個表中的兩個結果集?
我有一個表:
name | flag
-----------
aa | 1
bb | 0
cc | 1
dd | 0
ee | 1
ff | 0
我需要編寫查詢到以下表中獲取:
name | flag
-----------
aa | 1
cc | 1
ee | 1
ff | 0
dd | 0
bb | 0
決賽桌,如同與國旗行= 1取,整理上升,標記= 0的行被採取並分類降並且結果一個接一個地結合。
請注意,與標誌= 1,行與行標誌= 0有相反排序順序。
是否可以在SQL中執行?我不想做兩個查詢並手動合併Java代碼中的ResultSets。
謝謝,您的解決方案在HSQLDB中工作。 但是,你能解釋一下數據庫中的排序工作嗎?引擎選擇行,然後應用兩種順序表達式:「flag desc,name,'desc'(if flag = 1)or this:」flag desc,',name desc「(if flag = 0)?我從來沒有遇到動態的「秩序」表達式。 – ilya 2010-03-07 17:20:13
它對3列進行排序,但第2列或第3列是常數,因此被有效忽略 – gbn 2010-03-07 18:05:53