SQLITE:如何从表中获取一行+以不同的顺序获取其余行

时间:2017-08-23 22:07:56

标签: android sql sqlite android-sqlite

我有一张包含以下行的表格。

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?非常感谢!

2 个答案:

答案 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