![](/img/trans.png)
[英]How to combine two different but correlated result sets of a Sparql query into one?
[英]How to combine two result sets from one table sorted independently using one SQL query?
這是我必須在實際項目中解決的簡化任務。 在此項目中,數據存儲在HSQLDB中。 使用JDBC訪問數據。
我有一張桌子:
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
最終表就像采用flag = 1的行並升序排序,采用flag = 0的行並降序排序,結果依次合並。
請注意,標志= 1的行和標志= 0的行具有相反的排序順序。
可以在SQL中執行嗎? 我不想進行兩個查詢並以Java代碼手動合並ResultSet。
在任何SQL中,僅應用最外面的順序,因此必須在此完成。
我不知道這是否可以在您的SQL方言中使用(並且無法檢查對不起),但是您可以這樣做
SELECT name, flag
FROM 'table'
ORDER BY
flag desc,
CASE WHEN flag = 1 THEN name ELSE '' END,
CASE WHEN flag = 0 THEN name ELSE '' END DESC
嘗試這個:
SELECT name, flag
FROM 'table'
ORDER BY flag desc, name
讓數據庫盡一切可能進行工作。 不要在Java中執行此類操作。 認為“ SQL首先”。
order by
可以占用多個列:
select *
from table
order by flag desc, name asc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.