解决云梦数据库中时间字段为 NULL 时靠前排的问题
解决云梦数据库中时间字段为 NULL 时靠前排的问题
当前云梦数据库中有字段的值为 NULL,比如创建时间(create_time)那么我们按创建时间倒序排列是,create_time = NULL 会排在有时间值的前面,通常我们希望将有具体时间值的排在前面,那么可以通过如下方式实现。
ORDER BY create_time DESC, CASE WHEN modify_time IS NULL THEN 1 ELSE 0 END, modify_time DESC
说明:先按有具体时间值的创建时间(create_time)倒序排列,再按有具体时间值修改时间(modify_time)倒序排列,最后创建时间和修改时间为 NULL 的排列。
比如在使用 MyBatis Plus 时如下写:
queryWrapper.last(" ORDER BY create_time DESC, CASE WHEN modify_time IS NULL THEN 1 ELSE 0 END, modify_time DESC ");

浙公网安备 33010602011771号