Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

फ़ंक्शन परिणाम द्वारा SQLAlchemy आदेश

हाइब्रिड विशेषताएं विशेष विधियाँ हैं जो एक पायथन संपत्ति और एक SQL अभिव्यक्ति दोनों के रूप में कार्य करती हैं। जब तक आपकी difficulty फ़ंक्शन को SQL में व्यक्त किया जा सकता है, इसका उपयोग सामान्य कॉलम की तरह फ़िल्टर और ऑर्डर करने के लिए किया जा सकता है।

उदाहरण के लिए, यदि आप समस्या की गणना करते हैं तोते की संख्या के रूप में एक समस्या है, दस गुना यदि समस्या 30 दिनों से अधिक पुरानी है, तो आप इसका उपयोग करेंगे:

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
        )

और इसके साथ क्वेरी करें:

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. तालिका बनाएं यदि SQL सर्वर में समकक्ष मौजूद नहीं है

  2. फ़ंक्शन में SQL सर्वर में अल्पविराम सीमांकित मानों से भरा एक वर्चर पास करना

  3. SQL सर्वर का अजीब व्यवहार जब XML में नोड्स के मानों का योग करता है

  4. समग्र प्राथमिक कुंजी बनाम अतिरिक्त आईडी कॉलम?

  5. SQL सर्वर पर पेजिनेशन करने का सबसे अच्छा तरीका कौन सा है?