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.

626   5  

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

    Ничего не найдено.