在MySQL中,默认情况下,升序排序会将NULL值放在前面,因为在排序过程中,NULL会被视为最小值。然而,有时会要求在升序排序中需要将NULL值放在最后。
例如根据日期升序时就会出现这种问题
方案一:
SELECT sort FROM test ORDER BY ISNULL( sort ), sort
方案二:
SELECT sort FROM test ORDER BY -sort DESC
方案三:
SELECT sort FROM test ORDER BY CASE WHEN sort IS NULL THEN 1 ELSE 0 END, sort
注意:ISNULL()与IS NULL的区别。另外ISNULL函数不能用于WHERE子句中,只能用于SELECT子句中。