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 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With