sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL CTE-records als parameters om te functioneren

Als de functie één record retourneert, dan:

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

zal werken. Als de functie echter een SRF (Set-Returning-Function) is, moet u LATERAL gebruiken om de database te laten weten dat u de resultaten van de voorgaande tabellen in de JOIN-instructie naar de functies later in de MEEDOEN. Dit wordt als volgt bereikt:

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

De LATERAL zorgt ervoor dat PostgreSQL elke rij uit de CTE haalt en "my_function" uitvoert met de waarden uit die rij, waarbij de resultaten van die functie worden geretourneerd naar de algemene SELECT-instructie.




  1. Wanneer STRAIGHT_JOIN gebruiken met MySQL?

  2. Bedenk beheerdersrol:PG::Fout:FOUT:relatiebeheerders bestaan ​​al

  3. MySQL STR_TO_DATE NULL bij fout

  4. Kan XML-gegevens niet weergeven met PHP-script