

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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.

# SQL scalaire UDFs
<a name="udf-creating-a-scalar-sql-udf"></a>

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](r_CREATE_FUNCTION.md) 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 \$11, \$12, 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
<a name="udf-scalar-sql-function-example"></a>

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](r_CREATE_FUNCTION.md).

```
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\$1sql\$1greater 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;
```