example create_engine create python sqlalchemy

create_engine - sqlalchemy python



SQLAlchemy ¿ORDEN DESCENDIENDO? (5)

¿Cómo puedo usar ORDER BY descending en una consulta de SQLAlchemy como la siguiente?

Esta consulta funciona, pero los devuelve en orden ascendente:

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 :) )

Si lo intento

.order_by(desc(model.Entry.amount))

luego me sale: NameError: global name ''desc'' is not defined .


Al igual que un FYI, también puede especificar esas cosas como atributos de columna. Por ejemplo, podría haber hecho:

.order_by(model.Entry.amount.desc())

Esto es útil ya que puede usarlo en otros lugares, como en una definición de relación, etc.

Para más información, puede consultar este


Complementario en @Radu answer, Al igual que en SQL, puede agregar el nombre de la tabla en el parámetro si tiene muchas tablas con el mismo atributo.

.order_by("TableName.name desc")


Otra cosa que podrías hacer es:

.order_by("name desc")

Esto resultará en: ORDENAR por nombre desc. La desventaja aquí es el nombre de columna explícito usado en orden por.


Puedes usar la función .desc() en tu consulta de esta manera

query = (model.Session.query(model.Entry) .join(model.ClassificationItem) .join(model.EnumerationValue) .filter_by(id=c.row.id) .order_by(model.Entry.amount.desc()) )

Esto ordenará por cantidad en orden descendente o

query = session.query( model.Entry ).join( model.ClassificationItem ).join( model.EnumerationValue ).filter_by( id=c.row.id ).order_by( model.Entry.amount.desc() ) )


from sqlalchemy import desc someselect.order_by(desc(table1.mycol))

Usage de @ jpmc26