PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

SQLAlchemy Core - Generieren eines PostgreSQL-SUBSTRING-Ausdrucks?

Durchsuchen der SqlAlchemy-Tests , habe ich diesen sqlalchemy.sql.expression.func.substring gefunden kompiliert zu SUBSTRING für 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]) ist in der Tat das, was Sie wollen. Es ist "kommagetrennt", weil Python so

arbeitet

Wenn Sie die SQL selbst generieren möchten, können Sie so etwas wie text("SUBSTRING('foo' FROM 1 FOR 2)") machen , aber ich verstehe nicht, warum Sie das tun sollten.