PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

SQLAlchemy Core:generazione dell'espressione SUBSTRING PostgreSQL?

Esame dei test SqlAlchemy , ho scoperto che sqlalchemy.sql.expression.func.substring compila in SUBSTRING per 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]) è davvero quello che vuoi. È "delineato da virgole" perché è così che Python metodi

Se vuoi generare tu stesso l'SQL, puoi fare qualcosa come text("SUBSTRING('foo' FROM 1 FOR 2)") , ma non vedo perché dovresti.