Ответ 1
from sqlalchemy import desc
someselect.order_by(desc(table1.mycol))
Использование из @jpmc26
Как я могу использовать 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
.
from sqlalchemy import desc
someselect.order_by(desc(table1.mycol))
Использование из @jpmc26
Так же, как к сведению, вы также можете указать эти вещи в качестве атрибутов столбца. Например, я мог бы сделать:
.order_by(model.Entry.amount.desc())
Это удобно, поскольку вы можете использовать его в других местах, таких как определение отношений и т.д.
Для получения дополнительной информации, вы можете отослать это
Еще одна вещь, которую вы можете сделать:
.order_by("name desc")
Это приведет к: ORDER BY name 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())
)
Это будет порядок по сумме в порядке убывания или
query = session.query(
model.Entry
).join(
model.ClassificationItem
).join(
model.EnumerationValue
).filter_by(
id=c.row.id
).order_by(
model.Entry.amount.desc()
)
)
Вы можете попробовать: .order_by(ClientTotal.id.desc())
session = Session()
auth_client_name = 'client3'
result_by_auth_client = session.query(ClientTotal).filter(ClientTotal.client ==
auth_client_name).order_by(ClientTotal.id.desc()).all()
for rbac in result_by_auth_client:
print(rbac.id)
session.close()
Дополнительно к ответу @Radu. Как и в SQL, вы можете добавить имя таблицы в параметр, если у вас много таблиц с одним и тем же атрибутом.
.order_by("TableName.name desc")
Мы можем сделать это несколькими способами. Самым простым будет сделать это в следующем way-
res=ModelName.query.filter(ModelName.var1==cond).order_by(ModelName.var1.desc())