Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQLAlchemy thứ tự theo kết quả hàm

Thuộc tính kết hợp là các phương thức đặc biệt hoạt động như một thuộc tính Python và một biểu thức SQL. Miễn là difficulty của bạn hàm có thể được thể hiện bằng SQL, nó có thể được sử dụng để lọc và sắp xếp như một cột bình thường.

Ví dụ:nếu bạn tính độ khó bằng số con vẹt mà một bài toán gặp phải, gấp 10 lần nếu bài toán cũ hơn 30 ngày, bạn sẽ sử dụng:

from datetime import datetime, timedelta
from sqlalchemy import Column, Integer, DateTime, case
from sqlalchemy.ext.hybrid import hybrid_property

class Problem(Base):
    parrots = Column(Integer, nullable=False, default=1)
    created = Column(DateTime, nullable=False, default=datetime.utcnow)

    @hybrid_property
    def difficulty(self):
        # this getter is used when accessing the property of an instance
        if self.created <= (datetime.utcnow() - timedelta(30)):
            return self.parrots * 10

        return self.parrots

    @difficulty.expression
    def difficulty(cls):
        # this expression is used when querying the model
        return case(
            [(cls.created <= (datetime.utcnow() - timedelta(30)), cls.parrots * 10)],
            else_=cls.parrots
        )

và truy vấn nó bằng:

session.query(Problem).order_by(Problem.difficulty.desc())



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách nhanh nhất để xóa các ký tự không phải số khỏi VARCHAR trong SQL Server

  2. Sử dụng Excel VBA để chạy truy vấn SQL

  3. Phạm vi của CONTEXT_INFO trong SQL Server là gì?

  4. Giá trị trả về vào ngày tối đa cho một id cụ thể với null là giá trị lớn nhất trong t-sql

  5. Truy vấn mẫu máy chủ được liên kết của SQL Server