我想知道是否有办法用SqlAlchemy创建case
语句,例如postgresql version
如果没有简单的方法,可能会使用文字SQL吗?
答案 0 :(得分:14)
在此处查看有关案例陈述的文档:http://docs.sqlalchemy.org/en/latest/core/sqlelement.html#sqlalchemy.sql.expression.case
答案 1 :(得分:3)
SQLAlchemy官方doc的引用
from sqlalchemy import case, literal_column case( [ ( orderline.c.qty > 100, literal_column("'greaterthan100'") ), ( orderline.c.qty > 10, literal_column("'greaterthan10'") ) ], else_=literal_column("'lessthan10'") )
上面将在不使用绑定的情况下呈现给定的常量 结果值的参数(但仍用于比较) 值),例如:
CASE WHEN (orderline.qty > 100) THEN 'greaterthan100' WHEN (orderline.qty > 10) THEN 'greaterthan10' ELSE 'lessthan10' END