Tous les produits
Search
Centre de documentation

MaxCompute:Fonctions lambda

Dernière mise à jour :Oct 10, 2026

Une fonction lambda est une fonction anonyme. Elle ne nécessite pas de nom et peut être passée en paramètre à d'autres fonctions ou méthodes. Cette rubrique décrit les limites, la syntaxe et des exemples d'utilisation des fonctions lambda.

Limites

  • Les sous-requêtes ne sont pas prises en charge, par exemple x->2+(SELECT3).

  • Les agrégations ne sont pas prises en charge, par exemple x -> max(y).

Syntaxe

La syntaxe est la suivante : liste de paramètres -> expression ou bloc de code

  • Liste de paramètres : paramètres acceptés par la fonction lambda. La liste peut être vide ou contenir un ou plusieurs paramètres.

  • -> : sépare la liste de paramètres de l'expression ou du bloc de code.

Exemples

  • Exemple 1 : calculer le carré des valeurs d'une colonne de type tableau

    SELECT numbers,transform(numbers, n -> n * n) as squared_numbers
    FROM (
        VALUES (ARRAY(1, 2)),(ARRAY(3, 4)),(ARRAY(5, 6, 7))
    ) AS t(numbers);

    Le résultat suivant s'affiche :

    +------------+-----------------+
    | numbers    | squared_numbers |
    +------------+-----------------+
    | [5,6,7]    | [25,36,49]      |
    | [3,4]      | [9,16]          |
    | [1,2]      | [1,4]           |
    +------------+-----------------+
  • Exemple 2 : convertir un tableau en chaîne de caractères

    SELECT transform(prices, n -> CAST(n AS STRING ) || '$') as price_tags
    FROM (
        VALUES
            (ARRAY(100, 200)),(ARRAY(30, 4))
    ) AS t(prices);

    Le résultat suivant s'affiche :

    +------------+
    | price_tags |
    +------------+
    | ["30$","4$"] |
    | ["100$","200$"] |
    +------------+
  • Exemple 3 : calculer la valeur d'une fonction linéaire

    SELECT xvalues, a, b,
           transform(xvalues, x -> a * x + b) as linear_function_values
    FROM (
        VALUES (ARRAY(1, 2), 10, 5),(ARRAY(3, 4), 4, 2)
    ) AS t(xvalues, a, b);

    Le résultat suivant s'affiche :

    +------------+------------+------------+------------------------+
    | xvalues    | a          | b          | linear_function_values |
    +------------+------------+------------+------------------------+
    | [3,4]      | 4          | 2          | [14,18]                |
    | [1,2]      | 10         | 5          | [15,25]                |
    +------------+------------+------------+------------------------+