我有一个用例,我试图使用SQLALchemy的表达式语言生成一个SQL查询,并且部分查询是由用户提供的,这是一个条件。示例-“房间>10”作为字符串,其中“房间”是表中的一列.例子-
case(
('rooms > 10', 0),
else_=1
).label(col_name)现在,我的第一个想法是通过SQLAlchemy将其包装到text()函数中。例子-
case(
(text('rooms > 10'), 0),
else_=1
).label(col_name)但是根据文档(https://docs.sqlalchemy.org/en/14/core/tutorial.html#using-text-fragments-inside-bigger-statements),我们可以在select()中使用它,而不是使用case()。
有什么办法可以做到这一点吗?
谢谢!
发布于 2022-01-30 22:53:21
其中一项工作是将整个case语句转换为字符串,并在其上使用Text()。
text(f'CASE WHEN room > 10 THEN 0 ELSE 1 END AS {col_name}')但是,如果某些DB的SQL语法在情况下有所不同,这显然会失败。
https://stackoverflow.com/questions/70913943
复制相似问题