SQL Alchemy order_by with case

时间:2016-02-23 11:58:53

标签: python sqlalchemy

我正在尝试进行查询,其中一行应该始终排在第一位,否则按升序或降序排序。 我正在使用SQLAlchemy ORM。

the_case = case([(table.name != "foo", table.name)], else_="")

a = db.query(table).order_by(the_case, asc(table.name)).all()
b = db.query(table).order_by(the_case, desc(table.name)).all()

除了== b

之外它有效

1 个答案:

答案 0 :(得分:0)

我知道这可能有点太晚但是尝试使用the_case作为ask()desc()的参数:

a = db.query(table).order_by(ask(the_case)).all()
b = db.query(table).order_by(desc(the_case)).all()