Room DAO Order By ASC or DESC variable Room DAO Order By ASC or DESC variable android android

Room DAO Order By ASC or DESC variable


Use CASE Expression for SQLite to achieve this in Room DAO,

@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);


Create two queries, one with ASC and one with DESC.

@Query("SELECT * FROM Persons ORDER BY last_name ASC")List<Person> getPersonsSortByAscLastName();@Query("SELECT * FROM Persons ORDER BY last_name DESC")List<Person> getPersonsSortByDescLastName();


Why don't you try something like this? I have not tested it.

@Query("SELECT * FROM Persons ORDER BY first_name :order")List<Person> getPersonsAlphabetically(String order);

And the logic you suggested should go before you make the query.