SAFE_NEGATE |
Négation sécuritaire |
| BigQuery |
Syntaxe
Paramètres
| Nom |
Description |
| X |
Ce paramètre permet de spécifier la valeur numérique à laquelle vous souhaitez appliquer une négation (changer son signe). Cette fonction est "sûre" car elle retourne NULL si la négation de X entraîne un dépassement de capacité (overflow), au lieu de provoquer une erreur. Cela est particulièrement pertinent pour le type INT64 où MIN_INT64 n'a pas d'équivalent positif. |
Description
Cette fonction permet d'effectuer une négation et de retourner la valeur NULL si une exception se produit.
Remarques
- Prévention des dépassements de capacité INT64 : La fonction SAFE_NEGATE est particulièrement utile avec les entiers signés (INT64), car certaines
valeurs comme -9223372036854775808 n'ont pas d'équivalent positif représentable. Une négation classique sur cette valeur provoquerait une erreur, mais SAFE_NEGATE
renvoie NULL à la place.
- Sécurité accrue dans les traitements arithmétiques : Utiliser SAFE_NEGATE permet de manipuler des valeurs numériques sans craindre les effets indésirables
liés aux débordements, ce qui est essentiel dans les calculs financiers, statistiques ou comptables.
- Alternative plus fiable que l'opérateur unaire -X : Dans un contexte standard SQL, appliquer directement -X peut entraîner une erreur si la valeur
est à la limite inférieure du type de données. Avec SAFE_NEGATE, cette limitation est gérée de manière plus propre.
- Comportement cohérent avec les autres fonctions SAFE_ : Comme SAFE_ADD, SAFE_MULTIPLY
ou SAFE_DIVIDE, cette fonction s'inscrit dans une logique de robustesse en renvoyant NULL plutôt qu'une erreur, ce qui permet d'écrire
des requêtes plus tolérantes aux anomalies.
- Particulièrement utile dans des conversions ou transformations massives : Lorsqu'on applique une opération de signe à un grand volume de données, on ne
peut pas toujours prévoir les cas extrêmes. SAFE_NEGATE évite que de telles situations provoquent l'échec de toute une requête.
- Facile à combiner avec COALESCE pour gérer les NULL retournés : En cas de dépassement, SAFE_NEGATE renvoie NULL. On peut donc écrire
COALESCE(SAFE_NEGATE(X), 0) pour substituer une valeur par défaut et éviter que le résultat final soit lui-même NULL.
- Utile dans les systèmes où la stabilité prime sur l'exactitude absolue : Par exemple, dans des tableaux de bord analytiques ou rapports exécutés
automatiquement, il est souvent préférable d'afficher une donnée manquante (NULL) plutôt que de générer une erreur SQL critique.
- Renforce la fiabilité des scripts SQL automatisés : Lors de la mise en production de scripts exécutés de manière planifiée (travaux BigQuery),
l'usage de SAFE_NEGATE garantit que même des valeurs extrêmes n'interrompront pas le traitement complet.
Dernière mise à jour : Jeudi, le 18 Juin 2020