Ask a Question
Ask Question Login
Corporate Training
  1. Community
  2. SQL Server
  3. Question
SQL Server

How can I use “order_by” of Sqlalchemy to retrieve data in descending and ascending order?

Asked by Dhananjay Singh Dec 13, 2023 8.6K views 3 answers
Share

About this question

I am currently working on a project that includes a vast database of orders of customers. I need to retrieve these order details in ascending and descending order. How can I use SQLAlchemy’s “order_ by” feature to perform my task? 

Your answer

3 Answers

Ranjana Admin JanBask Expert Latest answer

Answered on Feb 5, 2025

In SQLAlchemy, you can use the order_by() function to sort query results in ascending (default) or descending order. Here’s how you can do it:

Sorting in Ascending Order (Default Behavior)

By default, order_by() sorts data in ascending order (ASC).

from sqlalchemy import create_engine, Column, Integer, String, desc
from sqlalchemy.orm import sessionmaker, declarative_base
# Database setup
Base = declarative_base()
engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
session = Session()
# Sample model
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)
# Retrieve data in ascending order (default)
users_asc = session.query(User).order_by(User.age).all()
# Print results
for user in users_asc:
    print(user.name, user.age)

✅ This sorts users by age in ascending order (oldest first).

Sorting in Descending Order

To retrieve data in descending order (DESC), use desc() from SQLAlchemy.

from sqlalchemy import desc
# Retrieve data in descending order
users_desc = session.query(User).order_by(desc(User.age)).all()
# Print results
for user in users_desc:
    print(user.name, user.age)

✅ This sorts users by age in descending order (youngest first).

Sorting by Multiple Columns

You can also sort by multiple columns:

  users = session.query(User).order_by(User.age.desc(), User.name.asc()).all()

✅ This sorts by age (descending), then by name (ascending) if ages are the same.


Was this helpful?

Ranjana Admin JanBask Expert

Answered on Feb 5, 2025

In SQLAlchemy, you can use the order_by() function to sort query results in ascending (default) or descending order. Here’s how you can do it:

Sorting in Ascending Order (Default Behavior)

By default, order_by() sorts data in ascending order (ASC).

from sqlalchemy import create_engine, Column, Integer, String, desc
from sqlalchemy.orm import sessionmaker, declarative_base
# Database setup
Base = declarative_base()
engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
session = Session()
# Sample model
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)
# Retrieve data in ascending order (default)
users_asc = session.query(User).order_by(User.age).all()
# Print results
for user in users_asc:
    print(user.name, user.age)

✅ This sorts users by age in ascending order (oldest first).

Sorting in Descending Order

To retrieve data in descending order (DESC), use desc() from SQLAlchemy.

from sqlalchemy import desc
# Retrieve data in descending order
users_desc = session.query(User).order_by(desc(User.age)).all()
# Print results
for user in users_desc:
    print(user.name, user.age)

✅ This sorts users by age in descending order (youngest first).

Sorting by Multiple Columns

You can also sort by multiple columns:

  users = session.query(User).order_by(User.age.desc(), User.name.asc()).all()

✅ This sorts by age (descending), then by name (ascending) if ages are the same.


Was this helpful?

More SQL Server discussions

Learn & Explore

Free tutorials and interview questions from industry experts — learn the skill, then get ready to prove it.

Latest SQL Server Blogs

Guides, tips and career advice on SQL Server from JanBask experts.