Création d'une fonction scalaire SQL définie par l'utilisateur - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'une fonction scalaire SQL définie par l'utilisateur

Une fonction scalaire SQL définie par l'utilisateur intègre une clause SELECT SQL qui s'exécute lorsque la fonction est appelée et renvoie une valeur unique. La commande CREATE FUNCTION définit les paramètres suivants :

  • (Facultatif) Arguments d'entrée. Chaque argument doit disposer d'un type de données.

  • Un type de données de retour.

  • Une clause SELECT SQL. Dans la clause SELECT, faites référence aux arguments d'entrée à l'aide de $1, $2, et ainsi de suite, en fonction de l'ordre des arguments dans la définition de fonction.

Les types de données d'entrée et de retour peuvent être de n'importe quel type de données Amazon Redshift standard.

N'incluez pas de clause FROM dans la clause SELECT. A la place, incluez la clause FROM dans l'instruction SQL qui appelle la fonction SQL définie par l'utilisateur.

La clause SELECT ne peut pas inclure les types de clause suivants :

  • FROM

  • INTO

  • WHERE

  • GROUP BY

  • ORDER BY

  • LIMIT

Exemple de fonction scalaire SQL

L’exemple suivant crée une fonction qui compare deux nombres et renvoie la valeur la plus grande. Pour plus d'informations, consultez 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;

La requête suivante appelle la nouvelle fonction f_sql_greater pour interroger la table SALES et renvoyer COMMISSION ou 20 % du PRICEPAID, quelle que soit la valeur la plus grande.

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