sql >> Base de Datos >  >> RDS >> PostgreSQL

SQLAlchemy Core:¿generando la expresión SUBSTRING de PostgreSQL?

Revisando las pruebas de SqlAlchemy , encontré que sqlalchemy.sql.expression.func.substring compila a 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]) es de hecho lo que quieres. Está "delineado por comas" porque así es como los métodos de Python

Si desea generar el SQL usted mismo, podría hacer algo como text("SUBSTRING('foo' FROM 1 FOR 2)") , pero no veo por qué lo harías.