Mikkey200 Asked: 2023-10-15 22:16:08 +0800 CST2023-10-15 22:16:08 +0800 CST 2023-10-15 22:16:08 +0800 CST 如何对 Null 和 YEAR 进行排序? 772 我想用 SQLITE 排序,这样我的数据将显示如下: 首先按年份 asc 排序,然后按字母顺序排序 如果年份为空,则按字母顺序排列 我的想法是: ORDER by CASE WHEN year = NULL then Name Else year, name ORDER by YEAR NULLS LAST , IIF(year != NULL, name, name desc) ; 但这不起作用。我收到一个错误。你有什么想法吗? sqlite 1 个回答 Voted Best Answer forpas 2023-10-16T00:38:11+08:002023-10-16T00:38:11+08:00 NULL您应该始终与运算符进行比较IS,而不是与 进行比较=。 SQLite 从 3.30.0 版本开始支持该NULLS LAST/FIRST子句。 如果您的版本支持它,那么您可以使用: ORDER BY year NULLS LAST, CASE WHEN year IS NOT NULL THEN name END, CASE WHEN year IS NULL THEN name END DESC; 如果您使用旧版本,您可以使用布尔表达式: ORDER BY year IS NULL, year, CASE WHEN year IS NOT NULL THEN name END, CASE WHEN year IS NULL THEN name END DESC; 或一个CASE表达式: ORDER BY CASE WHEN year IS NOT NULL THEN 1 ELSE 2 END, year, CASE WHEN year IS NOT NULL THEN name END, CASE WHEN year IS NULL THEN name END DESC; 请参阅演示。
NULL
您应该始终与运算符进行比较IS
,而不是与 进行比较=
。SQLite 从 3.30.0 版本开始支持该
NULLS LAST/FIRST
子句。如果您的版本支持它,那么您可以使用:
如果您使用旧版本,您可以使用布尔表达式:
或一个
CASE
表达式:请参阅演示。