PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wybierz kolumny z wywołania funkcji w rdzeniu sqlalchemy

Użyj FunctionElement.alias() i lekka column() :

from sqlalchemy import func, select, column

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

Dokumentacja wyraźnie wspomina Postgresql jako przypadek użycia dla tej konstrukcji. Powyższe daje:

SELECT col1, col2 
FROM my_function() AS anon_1

Korzystanie z parametru _selectable z column() możesz również:

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 ponieważ _selectable jest nieudokumentowany, może to nie być dobry pomysł.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skopiuj z csv do tabeli z automatycznym przyrostem kolumny PSQL id serial

  2. Zapytania niestandardowe w Spring z JPA

  3. Obliczanie procentu zagranego ponownie następnego dnia

  4. Co to jest LEFT JOIN w PostgreSQL

  5. Dynamiczne zapytanie UNION ALL w Postgres