

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.

# Types de données
<a name="iot-sql-data-types"></a>

Le moteur de AWS IoT règles prend en charge tous les types de données JSON.


**Types de données pris en charge**  

| Type | Signification | 
| --- | --- | 
| Int | Un Int discret. 34 chiffres maximum. | 
| Decimal |  Une valeur `Decimal` avec une précision de 34 chiffres, avec une magnitude non nulle de 1E-999 et une magnitude maximale de 9.999…E999.  Certaines fonctions renvoient des valeurs `Decimal` avec double précision plutôt qu’avec une précision de 34 chiffres.  Avec SQL V2 (2016-03-23), les valeurs numériques qui sont des nombres entiers, telles que `10.0`, sont traitées comme une valeur `Int` (`10`) au lieu de la valeur `Decimal` attendue (`10.0`). Pour traiter de manière fiable des valeurs numériques entières en tant que `Decimal` valeurs, utilisez SQL V1 (2015-10-08) pour l’instruction de requête de règle.   | 
| Boolean | True ou False. | 
| String | Une chaîne UTF-8. | 
| Array | Une série de valeurs qui ne sont pas nécessairement du même type. | 
| Object | Une valeur JSON composée d'une clé et d'une valeur. Les clés doivent être des chaînes. Les valeurs peuvent être de n'importe quel type. | 
| Null | Null comme défini par JSON. C'est une valeur réelle qui représente l'absence d'une valeur. Vous pouvez créer une valeur Null en utilisant le mot-clé Null dans votre instruction SQL. Par exemple : "SELECT NULL AS n FROM 'topic/subtopic'"  | 
| Undefined |  Ce n'est pas une valeur. Non représenté dans JSON, sauf en omettant la valeur. Par exemple, dans l'objet `{"foo": null}`, la clé « foo » renvoie NULL, mais la clé « bar » renvoie `Undefined`. En interne, le langage SQL traite `Undefined` comme une valeur, mais il ne peut pas être représenté dans JSON, donc quand il est sérialisé au format JSON, les résultats sont `Undefined`. <pre> {"foo":null, "bar":undefined} </pre> est sérialisé au format JSON comme suit : <pre> {"foo":null}</pre> De même, `Undefined` est converti en chaîne vide lorsqu'il est sérialisé par lui-même. Les fonctions appelées avec des arguments non valides (par exemple, des types incorrects, un nombre d'arguments incorrect, etc.) renvoient `Undefined`.   | 

## Conversions
<a name="iot-sql-conversions"></a>

Le tableau suivant répertorie les résultats lorsqu'une valeur d'un type est convertie dans un autre type (lorsqu'une valeur d'un type incorrect est transmise à une fonction). Par exemple, si la fonction de valeur absolue « abs » (qui prévoit une valeur `Int` ou `Decimal`) reçoit une valeur `String`, elle tente de convertir la valeur `String` en `Decimal`, en respectant ces règles. Dans ce cas, « abs("-5.123") » est traité comme « abs(-5.123) ».

**Note**  
Il n'y a aucune tentative de conversion en `Array`, `Object`, `Null` ou `Undefined`.


**En valeur décimale**  

| Type d’argument | Résultat | 
| --- | --- | 
| Int | Un chiffre Decimal sans virgule décimale. | 
| Decimal | La valeur source. | 
| Boolean | Undefined. (Vous pouvez explicitement utiliser la fonction cast pour transformer true = 1.0, false = 0.0.) | 
| String | Le moteur SQL essaie d'analyser la chaîne en tant Decimal que. AWS IoT tente d'analyser les chaînes correspondant à l'expression régulière :^-?\$1d\$1(\$1.\$1d\$1)?((?i)E-?\$1d\$1)?\$1. « 0 », « -1.2 », « 5E-12 » sont des exemples de chaînes qui sont automatiquement converties en valeurs Decimal. | 
| Tableau | Undefined. | 
| Objet | Undefined. | 
| Null | Null. | 
| Non défini | Undefined. | 


**En Entier**  

| Type d’argument | Résultat | 
| --- | --- | 
| Int | La valeur source. | 
| Decimal | La valeur source arrondie à la valeur Int la plus proche. | 
| Boolean | Undefined. (Vous pouvez explicitement utiliser la fonction cast pour transformer true = 1.0, false = 0.0.) | 
| String |  Le moteur SQL essaie d'analyser la chaîne en tant Decimal que. AWS IoT tente d'analyser les chaînes correspondant à l'expression régulière :^-?\$1d\$1(\$1.\$1d\$1)?((?i)E-?\$1d\$1)?\$1. « 0 », « -1,2 », « 5E-12 » sont tous des exemples de chaînes converties automatiquement en Decimal s. AWS IoT tente de convertir le en aDecimal, puis en tronque les décimales String pour en faire un. Decimal Int | 
| Tableau | Undefined. | 
| Objet | Undefined. | 
| Null | Null. | 
| Non défini | Undefined. | 


**En valeur booléenne**  

| Type d’argument | Résultat | 
| --- | --- | 
| Int | Undefined. (Vous pouvez explicitement utiliser la fonction cast pour transformer 0 = False, any\$1nonzero\$1value = True.) | 
| Decimal | Undefined. (Vous pouvez explicitement utiliser la fonction cast pour transformer 0 = False, any\$1nonzero\$1value = True.) | 
| Boolean | La valeur d'origine. | 
| String | « true »=True et « false »=False (insensible à la casse). Les autres valeurs de chaînes sont : Undefined. | 
| Tableau | Undefined. | 
| Objet | Undefined. | 
| Null | Undefined. | 
| Non défini | Undefined. | 


**En chaîne**  

| Type d’argument | Résultat | 
| --- | --- | 
| Int | Une représentation de chaîne de la valeur Int en notation standard. | 
| Decimal | Une chaîne représentant la valeur Decimal, probablement en notation scientifique.  | 
| Boolean | « true » ou « false ». Tout en minuscules. | 
| String | La valeur d'origine. | 
| Tableau | Le Array sérialisé au format JSON. La chaîne résultante est une liste de valeurs séparées par des virgules, délimitées par des crochets. Une valeur String est indiquée entre guillemets. Pas les valeurs Decimal, Int, Boolean et Null. | 
| Objet | L'objet sérialisé au format JSON. La chaîne résultante est une liste de paires clé-valeur séparées par des virgules, qui commence et se termine par des accolades. Une valeur String est indiquée entre guillemets. Pas les valeurs Decimal, Int, Boolean et Null. | 
| Null | Undefined. | 
| Non défini | Non défini. | 