Catégories :

Fonctions de données semi-structurées et structurées (extraction)

GET_IGNORE_CASE

Extrait une valeur de champ d’un objet ; renvoie NULL si l’un des arguments est NULL.

Note

Cette fonction est similaire à GET, mais applique une correspondance sans distinction de casse aux noms de champs.

Voir aussi :

GET

Syntaxe


Copy

OBJECT (ou VARIANT contenant un OBJECT)

GET_IGNORE_CASE( <object> , <field_name> )

GET_IGNORE_CASE( <variant> , <field_name> )
Copy

MAP

GET_IGNORE_CASE( <map> , <key> )
Copy

Arguments

variant

Une expression qui évalue un VARIANT qui contient soit un ARRAY, soit un OBJECT.

object

Une expression qui donne un OBJECT contenant des paires clé-valeur.

field_name

Une expression qui est évaluée à un VARCHAR. Ceci spécifie la clé dans une paire clé-valeur pour laquelle vous voulez récupérer la valeur.

field_name ne doit pas être une chaîne vide.

Si object est un OBJECT structuré, vous devez spécifier une constante pour field_name.

Si object ne contient pas la clé spécifiée :

  • Si object est un OBJECT semi-structuré, la fonction renvoie NULL.

  • Si object est un OBJECT structuré, il se produit une erreur.

map

Une expression qui est évaluée sur une MAP.

key

La clé d’une paire clé-valeur pour laquelle vous voulez récupérer la valeur.

Si map ne contient pas la clé spécifiée, la fonction renvoie NULL.

Renvoie

  • La valeur renvoyée est l’élément spécifié du ARRAY ou la valeur qui correspond à la clé spécifiée d’une paire clé-valeur dans l’OBJECT.

  • Si l’objet d’entrée est un OBJECT, un ARRAY ou une VARIANT semi-structuré(e), la fonction renvoie une VARIANT. Le type de données est VARIANT, car :

    • Dans un ARRAY, chaque élément est de type VARIANT.

    • Dans un OBJECT, la valeur de chaque paire clé-valeur est de type VARIANT.

  • Si l’objet d’entrée est un OBJECT structuré, un ARRAY structuré ou une MAP, la fonction renvoie une valeur du type spécifié pour l’objet.

    Par exemple, si le type de l’objet d’entrée est ARRAY(NUMBER), la fonction renvoie un NUMBER.

Notes sur l’utilisation

  • Cette fonction renvoie la première correspondance exacte trouvée. Si la fonction ne trouve que des correspondances ambiguës (insensibles à la casse), elle renvoie la valeur de l’une des correspondances ; cependant, aucune garantie ne peut être donnée sur le nom de champ ambigu correspondant en premier.

  • GET_IGNORE_CASE est une fonction binaire qui peut être appelée des manières suivantes :

    • object est une valeur OBJECT et field_name est une valeur de chaîne, qui peut être une constante ou une expression.

      Cette variation de GET_IGNORE_CASE extrait la valeur du champ avec le nom fourni à partir de la valeur de l’objet.

    • v est une valeur VARIANT et field_name est une valeur de chaîne, qui peut être une constante ou une expression.

      Fonctionne de la même façon que GET_IGNORE_CASE avec object, mais vérifie en outre que v contient une valeur d’objet (et renvoie NULL si v ne contient pas d’objet).

Exemples

Extrayez une valeur de champ d’un objet. La fonction renvoie la valeur pour la correspondance exacte :

SELECT GET_IGNORE_CASE(TO_OBJECT(PARSE_JSON('{"aa":1, "aA":2, "Aa":3, "AA":4}')),'aA') as output;

+--------+
| OUTPUT |
|--------|
| 2      |
+--------+
Copy

Extrayez une valeur de champ d’un objet. La fonction ne trouve pas de correspondance exacte et renvoie donc l’une des correspondances ambiguës :

SELECT GET_IGNORE_CASE(TO_OBJECT(PARSE_JSON('{"aa":1, "aA":2, "Aa":3}')),'AA') as output;

+--------+
| OUTPUT |
|--------|
| 3      |
+--------+
Copy

Pour des exemples plus détaillés, voir Interrogation de données semi-structurées.