반응형
Sqlalchemy ORM, order_by에 case 이용 예제
글. 수알치 오상문
Sqlalchemy에서 문법 변화가 생겨서 order_by에서 case를 사용하던 예전 예제를 이용하면 오류가 나는 경우가 있습니다.
그 경우에 아래 구조처럼 적용해서 사용해보세요.
[참고] case 함수 이용시 임포트 추가
from sqlalchemy import case
Fruit = models.Fruit
ret = db.query( Fruit )\
.order_by( case( ( Fruit.name == '사과', 1),
( Fruit.name == '배', 2),
( Fruit.name == '감', 3),
else_=4))\
.all()
이 예제는 Fruit 테이블의 과일 이름 컬럼(name)을 정렬할 때, 정렬 순서를 사과, 배, 감 순서로 변경하고, 나머지는 그 이후 순서로 배치하는 쿼리입니다.
그냥 정렬(오름차순)하면 감, 배, 사과가 되겠지만, 저 쿼리를 적용하면 사과, 배, 감, 기타... 순서가 적용됩니다.
반응형
'Python 활용' 카테고리의 다른 글
Python과 C#의 AES 암호화 연동 (0) | 2024.01.16 |
---|---|
파이썬, 시스템 정보 보여주기 (0) | 2024.01.15 |
Python으로 만나보는 디지털 포렌식 Digital Forensic (0) | 2023.11.13 |
파이썬, IP 유효성 확인 (IPv4, IPv6) (0) | 2023.11.10 |
파이썬, JSON Schema Validation (0) | 2023.11.05 |