복붙노트

[PYTHON] SQLAlchemy는 DESDENDING을 명령합니까?

PYTHON

SQLAlchemy는 DESDENDING을 명령합니까?

다음과 같은 SQLAlchemy 쿼리에서 ORDER BY를 사용하여 내림차순을 사용할 수 있습니까?

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

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 : 전역 이름 'desc'정의되지 않았습니다.

해결법

  1. ==============================

    1.FYI처럼 열 속성으로 지정할 수도 있습니다. 예를 들어, 내가했을 수도 있습니다 :

    FYI처럼 열 속성으로 지정할 수도 있습니다. 예를 들어, 내가했을 수도 있습니다 :

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

    관계 정의 등의 다른 장소에서 사용할 수 있으므로 편리합니다.

    자세한 내용은 다음을 참조하십시오.

  2. ==============================

    2.

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

    @ jpmc26의 사용법

  3. ==============================

    3.당신이 할 수있는 또 하나의 일은 :

    당신이 할 수있는 또 하나의 일은 :

    .order_by("name desc")
    

    그러면 ORDER BY name desc가 발생합니다. 여기에서 단점은에 의해 사용 된 명시적인 열 이름입니다.

  4. ==============================

    4.쿼리에서 .desc () 함수를 다음과 같이 사용할 수 있습니다.

    쿼리에서 .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())
            )
    

    금액에 따라 내림차순으로 정렬됩니다.

  5. ==============================

    5.@Radu 응답에서 보완 SQL에서와 같이 동일한 속성을 가진 테이블이 여러 개있는 경우 매개 변수에 테이블 이름을 추가 할 수 있습니다.

    @Radu 응답에서 보완 SQL에서와 같이 동일한 속성을 가진 테이블이 여러 개있는 경우 매개 변수에 테이블 이름을 추가 할 수 있습니다.

    .order_by("TableName.name desc")
    
  6. from https://stackoverflow.com/questions/4186062/sqlalchemy-order-by-descending by cc-by-sa and MIT license