In SQLite, is there any way of ordering by the number of NULL values in each row, without having stored this number explicitly in a separate column?
Something like
SELECT rowid FROM
(SELECT rowid, COUNT_NULLS(column_1,column_2,...,column_n) AS num_nulls FROM rows)
ORDER BY num_nulls;
Advertisement
Answer
You can count the number of null values in the row in the order by clause, like so:
select * from mytable t order by (column_1 is null) + (column_2 is null) + ... (column_n is null)
Condition (column_1 is null) evaluates as 1 if the column is null, else 0.