SQLAlchemy порядок по убыванию?
как я могу использовать ORDER BY descending в запросе SQLAlchemy, как показано ниже?
этот запрос работает, но возвращает их в порядке возрастания:
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.
5 ответов:
Как и FYI, вы также можете указать эти вещи в качестве атрибутов столбцов. Например, я мог бы сделать:
.order_by(model.Entry.amount.desc())это удобно, так как вы можете использовать его в других местах, таких как определение отношения и т. д.
для получения дополнительной информации, вы можете обратитесь к этому
from sqlalchemy import desc someselect.order_by(desc(table1.mycol))использование от @jpmc26
еще одна вещь, которую вы могли бы сделать, это:
.order_by("name desc")это приведет к: порядок по имени desc. Недостатком здесь является явное имя столбца, используемое в порядке.
дополнительный ответ @Radu, как и в SQL, вы можете добавить имя таблицы в параметр, если у вас есть много таблиц с одним и тем же атрибутом.
.order_by("TableName.name desc")
Comments