Ich weiß, es gibt den Prozess SELECT array_agg(f) FROM (SELECT blah FROM stuff) f
, die in SQL ist großartig, aber wenn Schreiben Funktionen in PL/pgSQL, gibt es eine Kurzschrift-Methode?Konvertieren eines zurückgegebenen SETOF in ein Array in PL/PgSQL (speziell)
Ich versuche, JSON-Schlüssel in ein Array zu setzen, die ich verwenden kann, um die Länge zu betrachten. So etwas wie ...
v_len := array_length(array_agg(json_object_keys(myjson)), 1);
anstelle des langen, eine Variable deklarieren, führen Sie eine SELECT array_agg(f) INTO ...
, die ich getan habe. Ich habe Hunderte von Implementierungen mit der gleichen SQL-Zeichenfolge, aber ich möchte wirklich meinen Code reduzieren, meine Finger werden von allen überflüssigen Typisierung taub.
Was fehlt mir bei dieser Kurzschrift-Methode?
Awesome, wusste, dass es etwas kurz und praktisch war. Am Ende benutzte ich deine Lösung so ... 'array_length (ARRAY (SELECT rs VON json_object_keys (myjson) rs), 1)', was wunderbar funktioniert, um die Anzahl der JSON-Schlüssel zu erhalten. –
@GuyPark: Sie können 'SELECT rs FROM json_object_keys (myjson) rs' zu' SELECT json_object_keys (myjson) ' –
Prost für diesen Nick –