select * from table1
order by case Language when null then 1 else 0 end, Language
No matter which way I play around with it, it always displays null values first. Is there a standard way to allow non null values to take ordering precedence?
Thanks guys
You don't need WHEN
:
SELECT * FROM table1
ORDER BY Language IS NULL, Language
Operator IS
will return 1 on true, 0 otherwise (Operators).
EDIT: Dealing with empty TEXT
, also:
SELECT * FROM table1
ORDER BY Language IS NULL OR Language='', Language
ORDER BY
clause uses two fields:
Language IS NULL OR Language=''
. That's a boolean expression (resulting in 0
(false) or 1
(true) in SQLite), same as (Language IS NULL) OR (Language='')
When first field has same results, second fiels is used: Language
.
This way, whenever Language
is NULL
or empty TEXT
, first field will be 1
, relying those results after other results, evaluated to 0
. Then, second field is used to sort all results which Language
has content.
You have to use the is
operator when checking for null
select * from table1
order by case when Language is null then 1 else 0 end,
Language
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With