SQLAlchemy ORDER BY DESCENDING?

我怎样才能像下面这样在SQLAlchemy查询中使用ORDER BY?

此查询可以工作,但会按升序返回它们:

 query = (model.Session.query(model.Entry) .join(model.ClassificationItem) .join(model.EnumerationValue) .filter_by(id=c.row.id) .order_by(model.Entry.amount) # This row :) ) 

如果我尝试:

 .order_by(desc(model.Entry.amount)) 

那么我得到: NameError: global name 'desc' is not defined

就像参考一样,您也可以将这些东西指定为列属性。 例如,我可能做了:

 .order_by(model.Entry.amount.desc()) 

这是很方便的,因为你可以在其他地方使用它,比如在关系定义等等。

 from sqlalchemy import desc someselect.order_by(desc(table1.mycol)) 

用法 @ jpmc26

你可能做的另一件事是:

 .order_by("name desc") 

这将导致:ORDER BY名称desc。 这里的缺点是依次使用显式的列名。

你可以在查询中使用.desc()函数

 query = (model.Session.query(model.Entry) .join(model.ClassificationItem) .join(model.EnumerationValue) .filter_by(id=c.row.id) .order_by(model.Entry.amount.desc()) ) 

这将按数量降序排列