Ich benutze SQLAlchemy mit dem ORM paragdim. Es gelingt mir nicht, eine CASE WHEN-Anweisung zu finden. Ich finde keine Informationen dazu im Internet.FALL WENN mit ORM (SQLalchemy)
Ist es möglich?
Ich benutze SQLAlchemy mit dem ORM paragdim. Es gelingt mir nicht, eine CASE WHEN-Anweisung zu finden. Ich finde keine Informationen dazu im Internet.FALL WENN mit ORM (SQLalchemy)
Ist es möglich?
Siehe sqlalchemy.sql.expression.case Funktion und weitere Beispiele auf der Dokumentationsseite. Aber es würde wie folgt aussehen (wörtlich aus der Dokumentation verknüpft):
case([(orderline.c.qty > 100, item.c.specialprice),
(orderline.c.qty > 10, item.c.bulkprice)
], else_=item.c.regularprice)
case(value=emp.c.type, whens={
'engineer': emp.c.salary * 1.1,
'manager': emp.c.salary * 3,
})
edit-1: (Beantwortung der Kommentar) Sicher, dass Sie können, siehe Beispiel unten:
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True, autoincrement=True)
first_name = Column(String)
last_name = Column(String)
xpr = case([(User.first_name != None, User.first_name + " " + User.last_name),],
else_ = User.last_name).label("full_name")
qry = session.query(User.id, xpr)
for _usr in qry:
print _usr.fullname
Siehe auch Using a hybrid für ein Beispiel von case
, das in den Hybrideigenschaften verwendet wird.
also keine Möglichkeit mit dem ORM? – Oodini
Sie können sehen, aktualisierte Antwort mit Beispiel, die gut funktioniert. – van
Danke! Und Glückwunsch an das Dokument für die Funktion [query()] (http://docs.sqlalchemy.org/en/latest/orm/session.html#sqlalchemy.orm.session.Session.query) ... – Oodini
Diese Frage ist ein Duplikat: http://stackoverflow.com/questions/5430640/sqlalchemy-case-statement-case-if-then-else – Nrai