PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

SQLAlchemy Core - générer une expression PostgreSQL SUBSTRING ?

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.