I have the following table ‘client’
x
ID|name|filecount
----------------------
1 Jim 7
2 Jane null
3 Mike 18
4 Jeff 12
5 Ann null
6 Helen 22
I want to fetch all rows from this table ordered by ID Desc
, with nulls in the column filecount
ordered last.
So after the sorting I would like to get the following order:
ID|name |filecount
----------------------
6 Helen 22
4 Jeff 12
3 Mike 18
1 Jim 7
5 Ann null
2 Jane null
I tried the following but it doesn’t work:
Select * from client order by id desc, (filecount > 0) nulls last
Advertisement
Answer
I would use a CASE
expression here:
SELECT *
FROM client
ORDER BY
CASE WHEN filecount IS NOT NULL THEN 0 ELSE 1 END,
ID DESC;