【本文来自Stackoverflow:Room DAO Order By ASC or DESC variable】
仅作记录,还未测试
在Android Room中我们有时候需要根据Java代码中的变量来动态排序,一般情况下我们需要写两个查询,偶然在Stackoverflow上面找到了这个方法,还未测试,仅供参考。
@Query("SELECT * FROM Persons ORDER BY last_name ASC")
List<Person> getPersonsSortByAscLastName();
@Query("SELECT * FROM Persons ORDER BY last_name DESC")
List<Person> getPersonsSortByDescLastName();
@Query("SELECT * FROM Persons ORDER BY CASE WHEN :isAsc = 1 THEN first_name END ASC, CASE WHEN :isAsc = 0 THEN first_name END DESC")
List<Person> getPersonsAlphabetically(boolean isAsc);