sqlalchemy中的RIGHT()函数

mar*_*ddy 1 python sqlalchemy

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

SELECT * FROM TABLE where right(COULUMN_CODE,2) = 'AX'
Run Code Online (Sandbox Code Playgroud)

here RIGHT( )- 返回具有指定字符数的字符串的右侧部分

是否有RIGHT函数的SQLAlchemy实现?

Mar*_*ers 5

你最好使用这个.endswith()方法:

select([tabledef]).where(tabledef.c.column_code.endswith('AX'))
Run Code Online (Sandbox Code Playgroud)

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

session.query(mappedobject).filter(mappedobject.column_code.endswith('AX'))
Run Code Online (Sandbox Code Playgroud)

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

如果必须直接使用sql函数,则始终可以使用函数生成器创建任意SQL函数:RIGHT()

from sqlalchemy.sql.expression import func

select([tabledef]).where(func.right(tabledef.c.column_code, 2) == 'AX')
Run Code Online (Sandbox Code Playgroud)

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