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