PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

SQLAlchemy Core - gerando a expressão SUBSTRING do PostgreSQL?


Examinando os testes SqlAlchemy , descobri que sqlalchemy.sql.expression.func.substring compila para SUBSTRING para 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]) é realmente o que você quer. É "delineado por vírgulas" porque é assim que os métodos Python

Se você quiser gerar o SQL você mesmo, você pode fazer algo como text("SUBSTRING('foo' FROM 1 FOR 2)") , mas não vejo por que você faria.