sql >> Databasteknik >  >> RDS >> PostgreSQL

Välj kolumner från funktionsanrop i sqlalchemy core

Du vill använda code>FunctionElement.alias() och den lätta kolumnen( ) :

from sqlalchemy import func, select, column

stmt = select([column('col1'), column('col2')]).\
    select_from(func.my_function().alias())

Dokumentationen nämner specifikt Postgresql som ett användningsfall för denna konstruktion. Ovanstående ger:

SELECT col1, col2 
FROM my_function() AS anon_1

Använder parametern _selectable av column() du kan också:

In [4]: fn = func.my_function().alias()

In [5]: stmt = select([column('col1', _selectable=fn),
   ...:                column('col2', _selectable=fn)])

In [6]: print(stmt)
SELECT anon_1.col1, anon_1.col2 
FROM my_function() AS anon_1

men eftersom _selectable lämnas odokumenterad, kanske det inte är en bra idé.




  1. Vad betyder "LANGUAGE 'plpgsql' VOLATILE"?

  2. Arbeta med JavaFX UI och JDBC Applications

  3. Hur väljer jag något i MYSQL utan att välja det två gånger om det står i raden

  4. Gruppera flera Mysql-satser för att hämta räkningen av flera statusar