![](/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.