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

Rekordy PostgreSQL CTE jako parametry do działania

Jeśli funkcja zwraca pojedynczy rekord, to:

WITH cte AS (SELECT 1 a, 2 b)
SELECT my_function(a, b) FROM cte;

będzie działać. Jeśli jednak funkcja jest funkcją SRF (Set-Returning-Function), musisz użyć opcji LATERAL, aby poinformować bazę danych, że chcesz przekazać wyniki poprzednich tabel w instrukcji JOIN do funkcji później w PRZYSTĄP. Odbywa się to w ten sposób:

WITH cte AS (SELECT 1 a, 2 b)
SELECT * FROM cte, LATERAL my_function(a, b);

LATERAL spowoduje, że PostgreSQL pobierze każdy wiersz z CTE i uruchomi "my_function" z wartościami z tego wiersza, zwracając wyniki tej funkcji do ogólnej instrukcji SELECT.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy mogę uruchomić zdarzenie w bazie danych Connect w Entity Framework Core?

  2. Pyodbc — Nie znaleziono nazwy źródła danych i nie określono domyślnego sterownika

  3. Dołącz do CTE w SQLAlchemy

  4. Kontener Dockera zamyka się, podając błąd „katalog danych ma niewłaściwą własność” podczas wykonywania w systemie Windows 10

  5. Entity Framework 6 z Npgsql