次のようなSQLAlchemyクエリでORDER BY descending
を使用する方法を教えてください。
このクエリは機能しますが、昇順で返されます。
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))
FYIと同じように、それらを列属性として指定することもできます。例えば、私はしたかもしれません:
.order_by(model.Entry.amount.desc())
関係定義などの他の場所で使用できるので、これは便利です。
詳しくは、 を参照してください
あなたがするかもしれないもう一つのことは:
.order_by("name desc")
ORDER BY name descとなります。ここでの不利な点は、byによって順番に使用される明示的なカラム名です。
このように、クエリで.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()
SQLと同様に、同じ属性を持つテーブルが多数ある場合は、パラメータにテーブル名を追加できます。
.order_by("TableName.name desc")