ORTA paragdim ile SQLAlchemy kullanıyorum. CASE WHEN talimatı yapmanın bir yolunu bulmuyorum. Bu konuda internette bilgi bulamıyorum.DURUM ORM (SQLalchemy) ile
Mümkün mü?
ORTA paragdim ile SQLAlchemy kullanıyorum. CASE WHEN talimatı yapmanın bir yolunu bulmuyorum. Bu konuda internette bilgi bulamıyorum.DURUM ORM (SQLalchemy) ile
Mümkün mü?
Belge sayfasındaki sqlalchemy.sql.expression.case işlevine ve diğer örneklere bakın. Ama (bağlı belgelerinden kelimesi kelimesine) şu şekilde görünecektir:
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: (yorumunu yanıtlayan) Eğer aşağıda örnek görebilirsiniz Emin:
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
Ayrıca, melez özelliklerinde kullanılan case
örneği için Using a hybrid'a bakın.
Bu soru yinelediği: Yani http://stackoverflow.com/questions/5430640/sqlalchemy-case-statement-case-if-then-else – Nrai