

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Requêtes d'objets imbriqués
<a name="iot-sql-nested-queries"></a>

Vous pouvez utiliser des clauses SELECT imbriquées pour interroger les attributs dans les tableaux et les objets JSON internes. Pris en charge par SQL 2016-03-23 et versions ultérieures.

Examinez le message MQTT suivant :

```
{ 
    "e": [
        { "n": "temperature", "u": "Cel", "t": 1234, "v": 22.5 },
        { "n": "light", "u": "lm", "t": 1235, "v": 135 },
        { "n": "acidity", "u": "pH", "t": 1235, "v": 7 }
    ]
}
```

**Example**  
Vous pouvez convertir des valeurs en un nouveau tableau avec la règle suivante.  

```
SELECT (SELECT VALUE n FROM e) as sensors FROM 'my/topic'
```

La règle génère le résultat suivant.

```
{
    "sensors": [
        "temperature",
        "light",
        "acidity"
    ]
}
```

**Example**  
En utilisant le même message MQTT, vous pouvez également interroger une valeur spécifique dans un objet imbriqué avec la règle suivante.  

```
SELECT (SELECT v FROM e WHERE n = 'temperature') as temperature FROM 'my/topic'
```

La règle génère le résultat suivant.

```
{
    "temperature": [
        {
            "v": 22.5
        }
    ]
}
```

**Example**  
Vous pouvez également aplatir la sortie avec une règle plus compliquée.  

```
SELECT get((SELECT v FROM e WHERE n = 'temperature'), 0).v as temperature FROM 'topic'
```

La règle génère le résultat suivant.

```
{
    "temperature": 22.5
}
```