我有一张包含以下行的表格。
rowid type value
1 A 13
2 A 14
3 B 12
4 B 15
5 C 17
6 C 16
我想首先获取类型A的bigest值,它的rowid = 2,然后按值DESC顺序获取其他值,rowid为56413
如何实现sqlite?非常感谢!
答案 0 :(得分:3)
如果您只想在order by
:
order by (case when type = 'A' and
value = (select max(t2.value) from t t2 where t2.type = 'A')
then 1 else 2
end),
value desc;
或者:
select t.*
from t cross join
(select max(value) as maxvalue from t where type = 'A'
) ta
order by (case when t.type = 'A' and t.value = ta.maxvalue then 1 else 2 end),
value desc;
答案 1 :(得分:1)
只需使用UNION子句将2个查询合并为一个。
SELECT Type, Value FROM YourTableName WHERE rowID = 2
UNION
SELECT Type, Value FROM YourTableName WHERE rowID != 2 ORDER BY value DESC