SAFE_ORDINAL |
Ordinal sécuritaire |
| BigQuery |
Syntaxe
|
array_expression[SAFE_ORDINAL(one_based_offset)]
|
Paramètres
| Nom |
Description |
| one_based_offset |
Ce paramètre permet de spécifier la position (l'index) de l'élément que vous souhaitez récupérer dans un tableau. L'indexation est basée sur un, ce qui signifie que le premier élément du tableau est à l'index 1, le deuxième à l'index 2, et ainsi de suite. Contrairement à ORDINAL standard, SAFE_ORDINAL ne provoque pas d'erreur si l'index fourni est en dehors des limites du tableau; il retourne plutôt NULL. |
Description
Cette fonction permet demander la valeur d'un élément par sa position dans un tableau et retourne NULL si la position n'existe pas.
Remarques
- Prévention des erreurs d'index hors limites : La principale force de SAFE_ORDINAL réside dans sa capacité à éviter les erreurs lorsqu'un index invalide
est utilisé. Contrairement à ORDINAL, cette version "sûre" retourne NULL si l'index dépasse la taille du tableau, ce qui rend vos requêtes plus robustes.
- Indexation basée sur un, et non sur zéro : À la différence de SAFE_OFFSET, SAFE_ORDINAL commence à 1 pour le premier élément. Cela peut être plus naturel
pour les utilisateurs non techniques, mais nécessite de bien distinguer les deux méthodes pour éviter des erreurs de positionnement.
- Sécurité dans les analyses avec des tailles de tableau variables : Lors de l'analyse de données contenues dans des tableaux de longueur inégale,
SAFE_ORDINAL permet d'accéder à une position sans provoquer d'erreur, même si cette position n'existe pas. Cela permet de gérer des cas limites silencieusement, avec
un retour NULL explicite.
- Recommandée dans les environnements de production sensibles : Pour les requêtes critiques ou automatisées en production, SAFE_ORDINAL offre une approche
défensive garantissant qu'aucune erreur d'exécution ne sera générée par des accès hors bornes, ce qui améliore la fiabilité du pipeline de traitement.
- Facile à combiner avec IFNULL ou COALESCE : Puisque SAFE_ORDINAL retourne NULL quand l'élément est inexistant, on peut le combiner facilement avec des
fonctions comme IFNULL() pour fournir une valeur par défaut ou afficher un message spécifique dans ces cas.
- Favorise l'écriture de requêtes tolérantes aux erreurs : L'utilisation de SAFE_ORDINAL permet de développer des requêtes continuant à s'exécuter même en
cas d'index problématique, ce qui est très utile pour l'exploration de données ou le développement de prototypes analytiques.
- Outil pratique dans les expressions complexes avec des boucles simulées : Dans des scénarios de génération de colonnes dynamiques à partir d'éléments de
tableau, SAFE_ORDINAL garantit une lecture sécurisée, évitant ainsi les interruptions dues à des positions manquantes.
- Compatible avec des contrôles dynamiques d'indexation : On peut utiliser SAFE_ORDINAL avec une expression dynamique (par exemple un résultat de calcul
ou de classement) comme index, sans devoir vérifier manuellement la taille du tableau en amont, puisque la sécurité est gérée automatiquement par la fonction.
Dernière mise à jour : Jeudi, le 18 Juin 2020