0
EXECUTE format(
'SELECT MAX(sum)
FROM table 1
WHERE %s = %s') INTO max_value USING id_column, id_value;
Getting error: ERROR: operator does not exist: character varying = integer.Wie dynamisch auszuwählen, in Abfrage
Auch wenn ich versuche, den folgenden Code auszuführen:
update table1 set column2 = max_value + sum;
ich einen anderen Fehler:
"ERROR: column "max_value" does not exist"
Bitte zeigen Sie uns yo Ihre ** komplette ** Funktion. Für den ersten Teil der Frage: Sie sollten '% I' als Platzhalter für einen Spaltennamen und'% L' für den Wert verwenden. –
Auf den ersten Blick - Sie müssen format() -Parameterwerte innerhalb von format() selbst nicht außerhalb hinzufügen (siehe https://www.postgresql.org/docs/current/static/functions-string.html#FUNCTIONS-STRING-FORMAT) . Zweitens beschäftigt sich Ihr Update mit der Variablen 'max_value' wahrscheinlich mit dem ersten Problem - dieser Variable wird niemals ein Wert aus dem dynamischen SELECT zugewiesen. –