SqlAlchemy:case语句(case - if - then -else)

时间:2011-03-25 09:30:16

标签: python sqlalchemy

我想知道是否有办法用SqlAlchemy创建case语句,例如postgresql version

如果没有简单的方法,可能会使用文字SQL吗?

2 个答案:

答案 0 :(得分:14)

答案 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