SqlAlchemy:case 语句(case - if - then -else)
Posted
技术标签:
【中文标题】SqlAlchemy:case 语句(case - if - then -else)【英文标题】:SqlAlchemy: case statement (case - if - then -else) 【发布时间】:2011-03-25 09:30:16 【问题描述】:我想知道是否有办法使用 SqlAlchemy 创建 case
语句,例如postgresql version
如果没有简单的方法,也许文字 SQL 是要走的路?
【问题讨论】:
CASE WHEN with ORM (SQLalchemy)的可能重复 【参考方案1】:在此处查看有关案例声明的文档:http://docs.sqlalchemy.org/en/latest/core/sqlelement.html#sqlalchemy.sql.expression.case
【讨论】:
谢谢!我在 google 网站上搜索了 sqlalchemy.org 的“案例”,但这是一个太常见的词。刚刚注意到在 sqlalchemy 网站本身上的搜索会首先显示该页面! 请在您的答案中提供更多链接。【参考方案2】:来自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
【讨论】:
以上是关于SqlAlchemy:case 语句(case - if - then -else)的主要内容,如果未能解决你的问题,请参考以下文章