programing

내림차순으로 주문하시겠습니까?

bestcode 2023. 1. 12. 22:14
반응형

내림차순으로 주문하시겠습니까?

ORDER BY 사용방법descending다음과 같은 SQL Chemy 쿼리에 포함됩니까?

이 쿼리는 동작하지만 오름차순으로 반환합니다.

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

시도하면:

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

그러면 다음과 같이 됩니다.NameError: global name 'desc' is not defined.

참고 항목과 마찬가지로 이러한 항목을 열 속성으로 지정할 수도 있습니다.예를 들어 다음과 같은 작업을 수행했을 수 있습니다.

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

이것은 편리합니다.import관계 정의 등 다른 장소에서도 사용할 수 있습니다.

상세한 것에 대하여는, 이 SQL Chemy 1.4 메뉴얼을 참조해 주세요.

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

@jpmc26부터의 사용방법

또 다른 방법은 다음과 같습니다.

.order_by("name desc")

ORDER BY name description 이 됩니다.여기서 단점은 순서에서 사용되는 명시적인 열 이름입니다.

사용할 수 있습니다..desc()다음과 같이 쿼리에서 기능합니다.

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

이것은 내림차순으로 금액별로 주문됩니다.

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

SQL Chemy 설명 기능 사용

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

공식 문서는 링크를 사용하거나 아래 스니펫을 확인하십시오.

sqlalchemy.sql.expression.desc(열) 내림차순 ORDER BY 절 요소를 생성합니다.

예:

from sqlalchemy import desc

stmt = select([users_table]).order_by(desc(users_table.c.name))

SQL은 다음과 같이 생성됩니다.

SELECT id, name FROM user ORDER BY name DESC

desc() 함수는 모든 SQL 식에서 사용할 수 있는 ColumnElement.desc() 메서드의 스탠드아론 버전입니다.예를 들어 다음과 같습니다.

stmt = select([users_table]).order_by(users_table.c.name.desc())

파라미터 컬럼: desc() 연산을 적용하는 ColumnElement(스칼라 SQL 식 등).

「 」를 참조해 주세요.

asc()

nullsfirst()

nullslast()

select.order_by() 선택

다음 작업을 수행할 수 있습니다..order_by(ClientTotal.id.desc())

session = Session()
auth_client_name = 'client3' 
result_by_auth_client = session.query(ClientTotal).filter(ClientTotal.client ==
auth_client_name).order_by(ClientTotal.id.desc()).all()

for rbac in result_by_auth_client:
    print(rbac.id) 
session.close()

@Radu answer에서 보완합니다. SQL에서와 같이 동일한 속성을 가진 테이블이 여러 개 있는 경우 파라미터에 테이블 이름을 추가할 수 있습니다.

.order_by("TableName.name desc")

언급URL : https://stackoverflow.com/questions/4186062/sqlalchemy-order-by-descending

반응형