sql >> Databáze >  >> RDS >> PostgreSQL

Vyberte sloupce z volání funkce v jádře sqlalchemy

Budete chtít použít FunctionElement.alias() a lehký column() :

from sqlalchemy import func, select, column

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

Dokumentace konkrétně zmiňuje Postgresql jako případ použití pro tuto konstrukci. Výše uvedené produkuje:

SELECT col1, col2 
FROM my_function() AS anon_1

Pomocí parametru _selectable z column() můžete také:

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

ale protože _selectable není zdokumentováno, nemusí to být dobrý nápad.




  1. Můžete replikovat konkrétní databázi nebo tabulku pomocí Amazon RDS

  2. Ekvivalent upozornění na naslouchání MySQL

  3. nelze přeložit název hostitele postgres na adresu:Název nebo služba nejsou známy

  4. MySql UNION pro AKTUALIZACI