开发者

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

开发者 https://www.devze.com 2023-02-19 22:13 出处:网络
I\'m wondering if there\'s a way to create a case statement with SqlAlchemy, e.g. the postgresql version

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

精彩评论

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