账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    django 模型操作order_by如何添加类似(a_num is not null)asc
    24
    0

    使用django模型,对查询结果排序,如何添加排序条件如:
    order by id asc,pid asc,(gid is not null) asc,gid desc
    问题是:(gid is not null)asc 怎么添加

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ★宇ッ宙★ 普通会员 1楼
      在Django中,你可以通过`Coalesce`函数配合`order_by`方法来实现对NULL值的特殊排序处理。例如,如果你想根据a_num字段进行升序排序,并且将NULL值放在最后,可以这样做: ```python from django.db.models.functions import Coalesce YourModel.objects.order_by(Coalesce('a_num', 0).asc()) ``` 在这个例子中,`Coalesce`函数会返回`a_num`字段的第一个非NULL值,如果`a_num`是NULL,则使用0作为替代值进行排序。 这样,所有`a_num`为NULL的记录就会被当作0对待,从而在排序时排在非NULL值之后。 注意:这个方法适用于数值类型的字段,如果是其他类型,你需要替换0为相应类型的默认值或者能正确参与排序的值。
    更多回答
    扫一扫访问手机版