我可以在 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)。
