tenten
tenten

Reputation: 1276

Sort By in Sqlite

This is the raw query that contain a left join and make the list to ascending order by STUDENT_NAME.

I want pass ORDER BY STUDENT_DETAILS.STUDENT_NAME ASC from outside to this query. (I want to make this sometimes ASC sometimes DESC).

How to implement this in the raw query?

 cursor = db.rawQuery(
        "SELECT *
         FROM STUDENT
         LEFT JOIN STUDENT_DETAILS ON
                    STUDENT.STUDENT_ID=STUDENT_DETAILS.STUDENT_ID
         WHERE STUDENT.START_DATE <= ? AND STUDENT.EXPIRED_DATE >= ?
         ORDER BY STUDENT_DETAILS.STUDENT_NAME ASC", 
         new String[]{date, date}
        );

Upvotes: 0

Views: 54

Answers (1)

Andrey Danilov
Andrey Danilov

Reputation: 6592

just make query depends on your needs

String addictionalState = "ASC";
if (something)
   addictionalState = "DESC";

cursor = db.rawQuery(
        "SELECT * FROM STUDENT LEFT JOIN STUDENT_DETAILS ON STUDENT.STUDENT_ID=STUDENT_DETAILS.STUDENT_ID WHERE STUDENT.START_DATE <= ? AND STUDENT.EXPIRED_DATE >= ? ORDER BY STUDENT_DETAILS.STUDENT_NAME "+addictionalState , 
        new String[]{date, date}
        );

Or you can pass results to list/hashmap and sort as you need.

Upvotes: 2

Related Questions