descending
다음과 같은 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: global name 'desc' is not defined
.
답변
참고로, 항목을 열 속성으로 지정할 수도 있습니다. 예를 들어, 다음을 수행했을 수 있습니다.
.order_by(model.Entry.amount.desc())
이것은 피하기 때문에 편리합니다 import
하며 관계 정의 등의 다른 위치에서 사용할 수 있습니다.
자세한 내용은 다음을 참조하십시오
답변
from sqlalchemy import desc
someselect.order_by(desc(table1.mycol))
@ jpmc26의 사용법
답변
당신이 할 수있는 또 하나의 일은 :
.order_by("name desc")
결과 : ORDER BY name 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())
)
내림차순으로 금액별로 주문하거나
query = session.query(
model.Entry
).join(
model.ClassificationItem
).join(
model.EnumerationValue
).filter_by(
id=c.row.id
).order_by(
model.Entry.amount.desc()
)
)
SQLAlchemy의 desc 기능 사용
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 (column) 내림차순 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())
매개 변수 column – 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의 보완 답변, SQL에서와 같이 동일한 속성을 가진 테이블이 많은 경우 매개 변수에 테이블 이름을 추가 할 수 있습니다.
.order_by("TableName.name desc")