PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Refaktorieren Sie Funktionen, damit sie innerhalb eines CTE verwendet werden können

Wie Sie richtig bemerkt haben, können Sie im Haupt-SELECT keine Zeilen sehen, die im CTE geändert wurden . Dieser ist dokumentiert :

Sie sollten also RETURNING verwenden .

Ich denke, der einfachste Weg wäre, keine Funktion zu verwenden, sondern json_build_object auszuführen in der Hauptabfrage und lassen Sie es auf den CTEs parents arbeiten und children .