sql >> Database >  >> RDS >> PostgreSQL

Hoe kan ik bestellen door een aangepaste functie in SQLAlchemy

Je zou je zoekopdracht kunnen implementeren met een CASE uitdrukking in SQL:

from sqlalchemy import case

_event_type_lookup = dict(received=0, open=1, done=2)

class Trades(Base):
    ...
    @hybrid_property
    def event_type_to_integer(self):
        return _event_type_lookup[self.event_type]

    @event_type_to_integer.expression
    def event_type_to_integer(cls):
        return case(_event_type_lookup, value=cls.event_type)

Dit gebruikt de value afkorting van de case() construct om een ​​uitdrukking te produceren die de gegeven kolomuitdrukking vergelijkt met de sleutels die in het woordenboek zijn doorgegeven, wat de toegewezen waarden als resultaat oplevert.




  1. Hoe een MySQL-schema met gegevens exporteren?

  2. SQL DROP-index, DROP-tabel en DROP-databaseverklaringen uitgelegd met voorbeelden

  3. Geen reactie ontvangen van PHP / MySQL NuSOAP

  4. Hoe de functie StRFtime() werkt in SQLite