sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur kan jag beställa efter en anpassad funktion i SQLAlchemy

Du kan implementera din uppslagning med ett CASE uttryck i 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)

Detta använder värde förkortning av case() konstruktion för att producera ett uttryck som jämför det givna kolumnuttrycket med nycklarna som skickas i ordboken, vilket ger de mappade värdena som resultat.




  1. Databasdesign:Sammansatt nyckel kontra primärnyckel för en kolumn

  2. Finns det något sätt att övervinna DSRA9010E 'setReadOnly' stöds inte på WebSphere-undantaget?

  3. Konstigt beteende av LENGTH-kommandot - ORACLE

  4. När jag använder Docker får jag felet:SQLSTATE[HY000] [2002] Ingen sådan fil eller katalog