Skip to main content
 首页 » 编程设计

python之sqlalchemy 中的 RIGHT() 函数

2025年05月04日19jyk

我可以在 SQLAlchemy 中实现以下内容吗,

SELECT *  
FROM TABLE  
WHERE RIGHT(COLUMN_CODE, 2) = 'AX' 

此处 RIGHT( ) 返回具有指定字符数的字符串的右侧部分。

是否有 RIGHT 函数的 SQLAlchemy 实现?

请您参考如下方法:

最好改用 .endswith() 方法:

select([tabledef]).where(tabledef.c.column_code.endswith('AX')) 

或者,当使用映射器配置和 session 进行过滤时:

session.query(mappedobject).filter(mappedobject.column_code.endswith('AX')) 

column_code.endswith() 方法将被转换为任何最适合您的特定引擎的 SQL,匹配以 AX 结尾的列值。

您始终可以使用 function generator如果您有直接使用 RIGHT() sql 函数,则可以创建任意 SQL 函数:

from sqlalchemy.sql.expression import func 
 
select([tabledef]).where(func.right(tabledef.c.column_code, 2) == 'AX') 

并且 func.right() 调用将被 SQL 生成层转换为 RIGHT(column_code, 2)。