Examiner les tests SqlAlchemy
, j'ai trouvé que sqlalchemy.sql.expression.func.substring
compile en SUBSTRING
pour PSQL
:
def test_substring(self):
self.assert_compile(
func.substring("abc", 1, 2),
"SUBSTRING(%(substring_1)s FROM %(substring_2)s "
"FOR %(substring_3)s)",
)
self.assert_compile(
func.substring("abc", 1),
"SUBSTRING(%(substring_1)s FROM %(substring_2)s)",
)
func.substring(str, from, [for])
est en effet ce que vous voulez. Il est "délimité par des virgules" car c'est ainsi que les méthodes Python
Si vous voulez générer le SQL vous-même, vous pouvez faire quelque chose comme text("SUBSTRING('foo' FROM 1 FOR 2)")
, mais je ne vois pas pourquoi vous le feriez.