Catégories :

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

GET

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

Notez que cette fonction ne doit pas être confondue avec la commande GET DML.

Voir aussi :

GET_IGNORE_CASE , GET_PATH , :

Syntaxe

GET( <object> , <field_name> )

GET( <v> , <field_name> )

GET( <array> , <index> )

GET( <v> , <index> )

Notes sur l’utilisation

  • GET applique une correspondance sensible à la casse aux noms de champs. Pour une correspondance insensible à la casse, essayez plutôt GET_IGNORE_CASE.

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

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

      Cette variation de GET extrait la valeur VARIANT du champ avec le nom fourni à partir de la valeur de l’objet. Si le champ n’est pas trouvé, NULL est renvoyé. Le nom du champ ne doit pas être une chaîne vide.

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

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

    • tableau est une valeur ARRAY et index est un entier, qui peut être une constante ou une expression.

      Cette variation de GET extrait VARIANT de la valeur de l’élément de tableau avec l’index donné. Si l’index pointe en dehors des limites du tableau ou si l’élément indexé n’existe pas (dans des tableaux fragmentés), cette fonction renvoie NULL.

    • v est une valeur VARIANT et index est un entier, qui peut être une constante ou une expression.

      Fonctionne de manière similaire à GET avec tableau, mais vérifie en outre que v contient une valeur de tableau (et renvoie NULL si v ne contient pas de tableau).

Exemples

Extrayez la valeur maximale du champ temperature de tous les objets de la table vartab contenant le champ avec le champ sensorType égal à indoor :

SELECT MAX(AS_REAL(GET(v, 'temperature'))) FROM vartab WHERE AS_CHAR(GET(v, 'sensorType')) = 'indoor';

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