Sqlalchemy基于特定值(名称)和其他升序对数据进行排序

问题描述 投票:0回答:1

我需要根据特定值对特定列表进行排序,该特定值是应该位于列表顶部的ID,其余的将按升序排序。

这是我通过应用case尝试过的代码。

db_session.query(ListModel)
.order_by(
    case([(ListModel.name == "OHIO", 1)]),
     ListModel.name.asc()
)
python sqlalchemy
1个回答
0
投票

我认为这是尝试此操作的更标准方法。而不是尝试同时对name和1进行排序,您可以为每行分配1或0(如果不是俄亥俄州),然后先按该行排序(默认为DESC),然后按名称(ASC)进行排序。

db.query(ListModel).order_by(
    case([(ListModel.name=='OHIO', 0)], else_=1), 
    ListModel.name.asc())
© www.soinside.com 2019 - 2024. All rights reserved.