如何对 Null 和 YEAR 进行排序?

问题描述 投票:0回答:1

我想用 SQLITE 排序,这样我的数据将显示如下:

  1. 首先按年份升序排序,然后按字母顺序排序
  2. 如果年份为空,则按字母顺序

我的想法是:

ORDER by CASE WHEN year = NULL then Name Else year, name

ORDER by YEAR NULLS LAST
   , IIF(year != NULL, name, name desc) ;

但这不起作用。我收到一个错误。你有什么想法吗?

sqlite
1个回答
0
投票

您应该始终将

NULL
与运算符
IS
进行比较,而不是与
=
进行比较。

SQLite 从 3.30.0 版本开始支持

NULLS LAST/FIRST
子句。
如果您的版本支持它,那么您可以使用:

ORDER BY year NULLS LAST,
         name;

如果您使用旧版本,您可以使用布尔表达式:

ORDER BY year IS NULL,
         year,
         name;

CASE
表达式:

ORDER BY CASE WHEN year IS NOT NULL THEN 1 ELSE 2 END,
         year,
         name;

查看演示

© www.soinside.com 2019 - 2024. All rights reserved.