[SQL ] 数字由大到小,但是NULL要排在更前面

楼主: liu2007 (è–¯)   2022-08-20 01:53:32
数据库名称:SQLite
数据库版本:SQLite 3
内容/问题描述:
我想对某一行由数字组成的字串做排序,规则是:
按照其自身数字的意义,由大到小进行排列
若内容值是NULL,则必须排在数字前面,NULL跟NULL彼此排序与否无所谓
例如有一行资料如下123,127,NULL,65,NULL,9657
我需要将他排成 NULL, NULL, 9657, 127, 123, 65
我查了一下可以在ORDER BY里面使用CASE
但大多数的范例使用的CASE 都是在某条件下使用其他行进行排序
例如如果两笔资料的同一行相同,则排序其他行的资料来决定顺序。
另外其中一个范例是 CASE WHEN XXX = XXX THEN 1 ELSE 2 END
不太懂这么写的意思意义在哪.....
以上就是我的问题,望各位赐教,感谢
作者: Iories (无法克制)   2022-08-20 08:39:00
Case When [栏] is Null Then 99999999 Else [栏] End数字比实际最大值还大就可以
作者: konkonchou (卡卡猫)   2022-08-20 09:54:00
order by publishDate NULLS first
作者: tedcat (动静:MSN暱称为主)   2022-09-14 22:56:00
另外一个方式是在order by自建字段order by case when field is null then 1 else 2 end asc, 然后原本字段 desc

Links booklink

Contact Us: admin [ a t ] ucptt.com