SQlite 条件命令

Fra*_*isc 3 sqlite sql-order-by conditional-statements

我有这个查询:

  select id,number,name 
    from objects 
order by case number when 0 then 1 else -1 end asc
Run Code Online (Sandbox Code Playgroud)

数据库是带有数字的对象的数据库。如果对象没有编号,则其编号为0。我想按数字升序排序,但数字为 0 时除外,在这种情况下,按降序排序。

上面的查询似乎是按 ID 排序的,默认排序顺序。

谢谢你。

ber*_*nie 5

关闭,但你也忘了排序number

  SELECT id,number,name 
    FROM objects 
ORDER BY CASE number WHEN 0 THEN 1 ELSE 0 END, number;
Run Code Online (Sandbox Code Playgroud)