- Catégories :
Fonctions de données semi-structurées et structurées (Ordre supérieur)
TRANSFORM¶
Transforme un tableau en fonction de la logique d’une expression lambda.
- Voir aussi :
Utilisation de fonctions Lambda sur les données avec les fonctions d’ordre supérieur de Snowflake
Syntaxe¶
Arguments¶
arrayTableau contenant les éléments à transformer. Le tableau peut être semi-structuré ou structuré.
lambda_expressionUne expression Lambda qui définit la logique de transformation sur chaque élément du tableau.
L’expression lambda ne doit avoir qu’un seul argument spécifié dans la syntaxe suivante :
Renvoie¶
Le type de renvoi de cette fonction est une table semi-structurée ou structurée du résultat de l’expression lambda.
Si l’un des deux arguments est NULL, la fonction renvoie NULL sans signaler d’erreur.
Notes sur l’utilisation¶
Lorsque le type de données de l’argument lambda est explicitement spécifié, l’élément du tableau est contraint de se convertir dans le type spécifié avant l’invocation de lambda. Pour des informations sur la coercition ou contrainte de conversion, voir Conversion de type de données.
Si aucun type de données n’est spécifié pour l’argument lambda, son type de données est dérivé du tableau d’entrée comme suit :
Si le tableau d’entrée est semi-structuré, le type de données de l’argument lambda est VARIANT.
Si le tableau d’entrée est structuré, le type de données de l’argument lambda est le type de données de l’élément du tableau.
Pour une entrée de tableau semi-structuré, un tableau semi-structuré est renvoyé. Pour une entrée de tableau structuré, un tableau structuré du type de résultat de l’expression lambda est renvoyé.
Exemples¶
Les exemples suivants utilisent la fonction TRANSFORM.
Multiplier chaque élément d’un tableau par une valeur¶
Utilisez la fonction TRANSFORM pour multiplier chaque élément d’un tableau par deux :
Cet exemple est le même que l’exemple précédent, mais il spécifie un tableau structuré de type INT :
Renvoyer des valeurs dans un tableau avec un texte ajouté¶
Utilisez la fonction TRANSFORM pour renvoyer la valeur de chaque objet d’un tableau et ajouter un texte à chacun d’entre eux :
Transformer des éléments de tableau en données de table¶
Supposons que vous disposiez d’une table nommée orders avec les colonnes order_id, order_date et order_detail. La colonne order_detail est un tableau contenant les articles, la quantité achetée et le sous-total. La table contient deux lignes de données. L’instruction SQL suivante crée cette table et insère les lignes :
Utilisez la fonction TRANSFORM pour ajouter un élément unit_price à chaque tableau de la table orders :
Utilisez la fonction TRANSFORM avec la fonction OBJECT_DELETE dans la logique de l’expression lambda pour supprimer l’élément quantity dans chaque tableau à partir du tableau orders :
Référencer une colonne de table dans une expression lambda pour transformer des éléments de tableau en données de table¶
Créez une table avec une colonne de type ARRAY et une autre colonne de type INT :
Utilisez la fonction TRANSFORM pour ajouter la valeur de col2 à la valeur de chaque élément du tableau dans chaque ligne :