РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
447 of 711 menu

Функция asc

Функция asc создает выражение для сортировки результатов запроса по возрастанию. Первым параметром функция принимает столбец или выражение, по которому нужно отсортировать данные. Обычно используется в методе order_by.

Синтаксис

asc(column)

Пример

Давайте создадим таблицу статей и отсортируем их по заголовку в порядке возрастания:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select, asc engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer) ) metadata.create_all(engine) with engine.connect() as conn: conn.execute(articles.insert(), [ {'title': 'article 2', 'text': 'text 2', 'status': 'draft', 'num': 2}, {'title': 'article 1', 'text': 'text 1', 'status': 'published', 'num': 1}, {'title': 'article 3', 'text': 'text 3', 'status': 'draft', 'num': 3} ]) conn.commit() stmt = select(articles.c.title).order_by(asc(articles.c.title)) res = conn.execute(stmt).scalars().all() print(res)

Результат выполнения кода:

['article 1', 'article 2', 'article 3']

Пример

Давайте отсортируем статьи по полю num по возрастанию и выведем заголовки:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select, asc engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer) ) metadata.create_all(engine) with engine.connect() as conn: conn.execute(articles.insert(), [ {'title': 'article 3', 'text': 'text 3', 'status': 'draft', 'num': 30}, {'title': 'article 1', 'text': 'text 1', 'status': 'published', 'num': 10}, {'title': 'article 2', 'text': 'text 2', 'status': 'draft', 'num': 20} ]) conn.commit() stmt = select(articles.c.title).order_by(asc(articles.c.num)) res = conn.execute(stmt).scalars().all() print(res)

Результат выполнения кода:

['article 1', 'article 2', 'article 3']

Пример

Давайте используем asc вместе с несколькими столбцами для сортировки:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select, asc engine = create_engine('sqlite:///:memory:') metadata = MetaData() articles = Table( 'articles', metadata, Column('id', Integer, primary_key=True), Column('title', String), Column('text', String), Column('status', String), Column('num', Integer) ) metadata.create_all(engine) with engine.connect() as conn: conn.execute(articles.insert(), [ {'title': 'article 1', 'text': 'text 1', 'status': 'draft', 'num': 2}, {'title': 'article 1', 'text': 'text 1', 'status': 'published', 'num': 1}, {'title': 'article 2', 'text': 'text 2', 'status': 'draft', 'num': 3} ]) conn.commit() stmt = select(articles.c.title, articles.c.status).order_by( asc(articles.c.title), asc(articles.c.status) ) res = conn.execute(stmt).all() print(res)

Результат выполнения кода:

[('article 1', 'draft'), ('article 1', 'published'), ('article 2', 'draft')]

Смотрите также

  • функцию desc,
    которая сортирует результаты по убыванию
  • функцию nulls_first,
    которая размещает NULL-значения в начале
  • функцию nulls_last,
    которая размещает NULL-значения в конце
  • функцию label,
    которая задает псевдоним для столбца
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить