Erstellung einer skalaren SQL-UDF - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellung einer skalaren SQL-UDF

Eine skalare SQL-UDF enthält eine SQL-SELECT-Klausel, die ausgeführt wird, wenn die Funktion aufgerufen wird, und einen einzelnen Wert zurückgibt. Der Befehl CREATE FUNCTION wird mit den folgenden Parametern aufgerufen:

  • (Optional) Eingabeparameter, Jedes Argument muss einen Datentyp aufweisen.

  • Ein Rückgabedatentyp

  • Eine SQL-SELECT-Klausel. Nutzen Sie in Übereinstimmung mit der Reihenfolge der Argumente in der Funktionsdefinition die Elemente „$1“, „$2“ usw. zur Benennung der Eingabeargumente in der SELECT-Klausel.

Ein- und Rückgabedaten können jeden standardmäßigen Amazon-Redshift-Datentyp verwenden.

Die SELECT-Klausel darf keine FROM-Klausel enthalten. Bauen Sie die FROM-Klausel stattdessen in die SQL-Anweisung ein, die die SQL-UDF aufruft.

Die SELECT-Klausel darf keinen der folgenden Klausel-Typen enthalten:

  • FROM

  • INTO

  • WHERE

  • GROUP BY

  • ORDER BY

  • LIMIT

Beispiel für eine skalare SQL-Funktion

Im folgenden Beispiel wird eine Funktion erstellt, die zwei Zahlen vergleicht und die größere zurückgibt. Weitere Informationen finden Sie unter CREATE FUNCTION.

create function f_sql_greater (float, float) returns float stable as $$ select case when $1 > $2 then $1 else $2 end $$ language sql;

In der folgenden Abfrage wird die neue Funktion „f_sql_greater“ aufgerufen, um eine Abfrage über der Tabelle „SALES“ auszuführen und entweder „COMMISSION“ oder 20 Prozent von „PRICEPAID“ zurückzugeben, je nachdem, welcher Wert größer ist.

select f_sql_greater(commission, pricepaid*0.20) from sales;