这是一个查询,应该对表进行排序,如果在“已归档”列中至少保留一个值不为null,则它工作正常,但是在我的情况下,已归档列的所有值都可以为null
如果至少一个值不为null,则应对其进行排序。
id|Archived
0 |NULL
1 |NULL
2 |0
3 |1
id|Archived
0 |NULL
1 |NULL
2 |NULL
3 |NULL
SELECT ... FROM Table1
ORDER BY
CASE archived WHEN NULL THEN 1 ELSE 0 END DESC,
CASE id WHEN NULL THEN 0 ELSE 1 END DESC
答案 0 :(得分:0)
您不能在CASE
中使用ORDER BY
语句的格式。相反,您可以这样做:
SELECT ... FROM Table1
ORDER BY
CASE WHEN archived IS NULL THEN 1 ELSE 0 END DESC,
CASE WHEN id IS NULL THEN 0 ELSE 1 END DESC
答案 1 :(得分:-1)
从工作样本中,我认为您不希望数据按降序排序,对吧?
SELECT ... FROM Table1
ORDER BY
CASE WHEN archived IS NULL THEN -1 ELSE archived END,
CASE WHEN id IS NULL THEN -1 ELSE id END