Wie kann ich ORDER BY descending
in einer SQLAlchemy-Abfrage wie der folgenden verwenden?
Diese Abfrage funktioniert, gibt sie jedoch in aufsteigender Reihenfolge zurück:
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 :)
)
Wenn ich es versuche:
.order_by(desc(model.Entry.amount))
dann bekomme ich : NameError: global name 'desc' is not defined
.
python
sqlalchemy
AP257
quelle
quelle
import
.Verwendung von @ jpmc26
quelle
someselect.order_by(desc(table1.mycol))
(Aus den Dokumenten entnommen .) ... weil ich es in Ihrer Frage nicht bemerkt habe.Eine andere Sache, die Sie tun könnten, ist:
Dies führt zu: ORDER BY name desc. Der Nachteil hierbei ist der explizite Spaltenname, der in der Reihenfolge von verwendet wird.
quelle
getattr(MyModelClass, column_string).desc()
wenn Sie eine Zeichenfolge haben.qry.order_by(getattr(getattr(Song, sort_by), sort_dir)())
Sie können die
.desc()
Funktion in Ihrer Abfrage einfach so verwendenDies erfolgt nach Betrag in absteigender Reihenfolge oder
Verwendung der Desc-Funktion von SQLAlchemy
Für offizielle Dokumente verwenden Sie bitte den Link oder überprüfen Sie das folgende Snippet
quelle
Du kannst es versuchen:
.order_by(ClientTotal.id.desc())
quelle
Komplementär bei @ Radu Antwort: Wie in SQL können Sie den Tabellennamen in den Parameter einfügen, wenn Sie viele Tabellen mit demselben Attribut haben.
quelle