我需要根据特定值对特定列表进行排序,该特定值是应该位于列表顶部的ID,其余的将按升序排序。
这是我通过应用case
尝试过的代码。
db_session.query(ListModel)
.order_by(
case([(ListModel.name == "OHIO", 1)]),
ListModel.name.asc()
)
我认为这是尝试此操作的更标准方法。而不是尝试同时对name
和1进行排序,您可以为每行分配1或0(如果不是俄亥俄州),然后先按该行排序(默认为DESC),然后按名称(ASC)进行排序。
db.query(ListModel).order_by(
case([(ListModel.name=='OHIO', 0)], else_=1),
ListModel.name.asc())