PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Изберете колони от извикване на функция в ядрото на sqlalchemy

Ще искате да използвате FunctionElement.alias() и леката column() :

from sqlalchemy import func, select, column

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

В документацията специално се споменава Postgresql като случай на използване на тази конструкция. Горното произвежда:

SELECT col1, col2 
FROM my_function() AS anon_1

Използване на параметъра _selectable на column() можете също така:

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

но тъй като _selectable е оставен недокументиран, това може да не е добра идея.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Непрекъснато вмъквайте всички срещани уникални комбинации от три идентификатора

  2. Play Не може да се свърже с (PostgreSQL) база данни [по подразбиране]

  3. Създаване на функция в Postgresql, която не връща съставни стойности

  4. Защо Solr е много по-бърз от Postgres?

  5. RANGE PRECEDING се поддържа само с UNBOUNDED