Просматривая тесты SqlAlchemy , я обнаружил, что sqlalchemy.sql.expression.func.substring
компилируется в SUBSTRING
для 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])
действительно то, что вы хотите. Это "с разделением запятыми", потому что именно так методы Python
Если вы хотите сгенерировать SQL самостоятельно, вы можете сделать что-то вроде text("SUBSTRING('foo' FROM 1 FOR 2)")
, но я не понимаю, почему вы это сделаете.