开发者

SqlAlchemy: case statement (case - if - then -else)

I'm wondering if there's a way to create a case statement with SqlAlchemy, e.g. the postgresql version

Maybe literal SQL is the way to go 开发者_Go百科if there is no easy way of doing it?


Check out the documentation about the case statement here: http://docs.sqlalchemy.org/en/latest/core/sqlelement.html#sqlalchemy.sql.expression.case


Reference from the Official doc of SQLAlchemy

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'")
)

The above will render the given constants without using bound parameters for the result values (but still for the comparison values), as in:

CASE
    WHEN (orderline.qty > 100) THEN 'greaterthan100'
    WHEN (orderline.qty > 10) THEN 'greaterthan10'
    ELSE 'lessthan10'
END
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜