Ich habe eine Funktion build_details (), die als einen ihrer Parameter eine einzelne Zeile / einen Datensatz aus einer anderen Tabelle verwendet.
Das möchte ich tun, aber es funktioniert nicht:
SELECT build_details(
SELECT * FROM my_table LIMIT 1,
1000,
TRUE)
Ich möchte eine einzelne Zeile aus my_table nehmen und an die Funktion übergeben, damit sie ausgeführt werden kann. Wie rufe ich die Funktion vom Terminal mit einem Datensatz von my_table auf?
postgresql
jase81
quelle
quelle
Ich würde es so machen,
Sie können dies anhand einiger Beispieldaten unten sehen.
Erstellen Sie eine Funktion, die den Zeilentyp
foo
abool
und an verwendet,int
einfach einen Hinweis auslöst und true zurückgibt.Jetzt können wir die obige Syntax verwenden, indem wir das Zeilenobjekt übergeben, das eine Zeile in darstellt
foo
, zusammen mit zwei anderen Variablen anint
und abool
.Sie können natürlich
LIMIT
immer noch Prädikate verwenden oder was auch immer Sie möchten.quelle
SELECT * FROM foo, build_details(foo, 1000, true)
eine Verknüpfung zur endgültigen Abfrage ist. Es führt eine implizite seitliche Verbindung durch.select some_func(foo.*)...
, um meine Zeile an die Funktion zu senden. Das Geheimnis warselect some_func(foo::foo)...
. Vielen Dank!Verwenden einer Unterauswahl zum erneuten Auswählen der Zeile
Das schien zu funktionieren:
quelle