Метод label
Метод label класса ColumnElement создает
псевдоним для колонки или произвольного SQL-выражения.
Первым параметром метод принимает строку с именем,
под которым колонка или выражение будет фигурировать
в результирующем наборе данных. Псевдоним особенно
полезен при выборке вычисляемых значений, агрегатных
функций и объединении колонок из разных таблиц.
Синтаксис
column_element.label(name)
Пример
Давайте создадим псевдоним для простого выражения и выведем итоговый SQL-запрос:
from sqlalchemy import select, literal
stmt = select(literal('article').label('title'))
print(stmt)
Результат выполнения кода:
SELECT :param_1 AS title
Пример
Давайте применим метод label к колонке модели:
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
pass
class Article(Base):
__tablename__ = 'articles'
id: Mapped[int] = mapped_column(primary_key=True)
title: Mapped[str]
text: Mapped[str]
status: Mapped[str]
num: Mapped[int]
Теперь построим запрос с псевдонимом для колонки:
from sqlalchemy import select
stmt = select(Article.title.label('article_title'))
print(stmt)
Итоговый SQL запрос:
SELECT articles.title AS article_title
FROM articles
Пример
Давайте создадим псевдоним для агрегатной функции и выполним запрос:
Результат выполнения кода:
[('active', 2), ('archive', 1)]
Пример
Давайте получим доступ к значению по имени псевдонима:
Результат выполнения кода:
2
Смотрите также
-
класс
ColumnElement,
который представляет элемент SQL-выражения -
метод
cast,
который приводит выражение к заданному типу -
метод
concat,
который объединяет строковые значения -
метод
operate,
который применяет оператор к элементу