

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.

# Opérateurs
<a name="iot-sql-operators"></a>

Les opérateurs suivants peuvent être utilisés dans les clauses SELECT et WHERE. 

## Opérateur AND
<a name="iot-sql-operators-and"></a>

Il renvoie une valeur `Boolean`. Il effectue une opération AND logique. Il renvoie la valeur true si les opérandes gauche et droit sont vrais. Sinon, il renvoie la valeur « false ». Des opérandes `Boolean` ou de chaînes « true » ou « false » sensibles à la casse sont requis.

*Syntaxe :* ` expression AND expression`.


**Opérateur AND**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Boolean | Boolean | Boolean. Vrai si les deux opérandes sont vrais. Sinon, la valeur renvoyée est Faux. | 
| String/Boolean | String/Boolean | Si toutes les chaînes sont « true » ou « false » (insensibles à la casse), elles sont converties en valeurs Boolean et traitées normalement en tant que valeurs boolean AND boolean. | 
| Autre valeur | Autre valeur | Undefined. | 

## Opérateur OR
<a name="iot-sql-operators-or"></a>

Il renvoie une valeur `Boolean`. Il effectue une opération OR logique. Il renvoie la valeur true si les opérandes gauche ou droit sont vrais. Sinon, il renvoie la valeur « false ». Des opérandes `Boolean` ou de chaînes « true » ou « false » sensibles à la casse sont requis.

*Syntaxe :* ` expression OR expression`.


**Opérateur OR**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Boolean | Boolean | Boolean. Vrai si l’un des deux opérandes est vrai. Sinon, la valeur renvoyée est Faux. Sinon, la valeur renvoyée est Faux. | 
| String/Boolean | String/Boolean | Si toutes les chaînes sont « true » ou « false » (insensibles à la casse), elles sont converties en valeurs booléennes et traitées normalement en tant que valeurs boolean OR boolean. | 
| Autre valeur | Autre valeur | Undefined. | 

## Opérateur NOT
<a name="iot-sql-operators-not"></a>

Il renvoie une valeur `Boolean`. Il effectue une opération NOT logique. Il renvoie true si l'opérande est faux. Sinon, la valeur renvoyée est true. Un opérande `Boolean` ou un opérande de chaîne « true » ou « false » insensible à la casse est requis.

*Syntaxe :* `NOT expression`.


**Opérateur NOT**  

| Opérande | Output | 
| --- | --- | 
| Boolean | Boolean. Vrai si l’opérande est Faux. Sinon, la valeur renvoyée est Vrai. | 
| String | Si une chaîne est « true » ou « false » (insensible à la casse), elle est convertie dans la valeur booléenne correspondante, et la valeur opposée est renvoyée. | 
| Autre valeur | Undefined. | 

## Opérateur IN
<a name="iot-sql-operators-in"></a>

Il renvoie une valeur `Boolean`. Vous pouvez utiliser l'opérateur IN dans une clause WHERE pour vérifier si une valeur correspond à une valeur d'un tableau. Elle renvoie vrai si la correspondance est trouvée, et faux dans le cas contraire.

*Syntaxe :* ` expression IN expression`.


**Opérateur IN**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int/Decimal/String/Array/Object | Array | Vrai si l'Objectélément Integer DecimalString/Array///se trouve dans le tableau. Sinon, la valeur renvoyée est Faux. | 

*Exemple :*

```
SQL: "select * from 'a/b' where 3 in arr"

JSON: {"arr":[1, 2, 3, "three", 5.7, null]}
```

Dans cet exemple, la clause condition `where 3 in arr` sera évaluée à true car 3 est présent dans le tableau nommé`arr`. Par conséquent, dans l'instruction SQL, `select * from 'a/b'` sera exécuté. Cet exemple montre également que le tableau peut être hétérogène.

## opérateur EXISTS
<a name="iot-sql-operators-exists"></a>

Il renvoie une valeur `Boolean`. Vous pouvez utiliser l'opérateur EXISTS dans une clause conditionnelle pour tester l'existence d'éléments dans une sous-requête. Elle renvoie true si la sous-requête renvoie un ou plusieurs éléments et false si la sous-requête ne renvoie aucun élément. 

*Syntaxe :* ` expression`.

*Exemple :*

```
SQL: "select * from 'a/b' where exists (select * from arr as a where a = 3)"

JSON: {"arr":[1, 2, 3]}
```

Dans cet exemple, la clause condition `where exists (select * from arr as a where a = 3)` sera évaluée à true car 3 est présent dans le tableau nommé`arr`. Par conséquent, dans l'instruction SQL, `select * from 'a/b'` sera exécuté.

*Exemple :*

```
SQL: select * from 'a/b' where exists (select * from e as e where foo = 2)

JSON: {"foo":4,"bar":5,"e":[{"foo":1},{"foo":2}]}
```

Dans cet exemple, la clause de condition `where exists (select * from e as e where foo = 2)` sera évaluée à true car le tableau `e` de l'objet JSON contient l'objet`{"foo":2}`. Par conséquent, dans l'instruction SQL, `select * from 'a/b'` sera exécuté.

## > opérateur
<a name="iot-sql-operators-greater"></a>

Il renvoie une valeur `Boolean`. Il renvoie la valeur true si l'opérande gauche est supérieur à l'opérande droit. Les deux opérandes sont convertis en valeur `Decimal`, puis comparés. 

*Syntaxe :* `expression > expression`.


**> opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. Vrai si l’opérande gauche est supérieur à l’opérande droit. Sinon, la valeur renvoyée est Faux. | 
| String/Int/Decimal | String/Int/Decimal | Si toutes les chaînes peuvent être converties en valeurs Decimal, puis en valeurs Boolean. Il renvoie la valeur true si l'opérande gauche est supérieur à l'opérande droit. Sinon, la valeur renvoyée est Faux. | 
| Autre valeur | Undefined. | Undefined. | 

## >= opérateur
<a name="iot-sql-operators-greater-equal"></a>

Il renvoie une valeur `Boolean`. Il renvoie la valeur true si l'opérande gauche est supérieur ou égal à l'opérande droit. Les deux opérandes sont convertis en valeur `Decimal`, puis comparés. 

*Syntaxe :* `expression >= expression`.


**>= opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean.Vrai si l’opérande gauche est supérieur ou égal à l’opérande droit. Sinon, la valeur renvoyée est Faux. | 
| String/Int/Decimal | String/Int/Decimal | Si toutes les chaînes peuvent être converties en valeurs Decimal, puis en valeurs Boolean. Il renvoie la valeur true si l'opérande gauche est supérieur ou égal à l'opérande droit. Sinon, la valeur renvoyée est Faux. | 
| Autre valeur | Undefined. | Undefined. | 

## < opérateur
<a name="iot-sql-operators-less"></a>

Il renvoie une valeur `Boolean`. Il renvoie la valeur true si l'opérande gauche est inférieur à l'opérande droit. Les deux opérandes sont convertis en valeur `Decimal`, puis comparés. 

*Syntaxe :* `expression < expression`.


**< opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. Vrai si l’opérande gauche est inférieur à l’opérande droit. Sinon, la valeur renvoyée est Faux. | 
| String/Int/Decimal | String/Int/Decimal | Si toutes les chaînes peuvent être converties en valeurs Decimal, puis en valeurs Boolean. Il renvoie la valeur true si l'opérande gauche est inférieur à l'opérande droit. Sinon, la valeur renvoyée est Faux. | 
| Autre valeur | Undefined | Undefined | 

## <= opérateur
<a name="iot-sql-operators-less-equal"></a>

Il renvoie une valeur `Boolean`. Il renvoie la valeur true si l'opérande gauche est inférieur ou égal à l'opérande droit. Les deux opérandes sont convertis en valeur `Decimal`, puis comparés. 

*Syntaxe:* `expression <= expression`.


**<= opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. Vrai si l’opérande gauche est inférieur ou égal à l’opérande droit. Sinon, la valeur renvoyée est Faux. | 
| String/Int/Decimal | String/Int/Decimal | Si toutes les chaînes peuvent être converties en valeurs Decimal, puis en valeurs Boolean. Il renvoie la valeur true si l'opérande gauche est inférieur ou égal à l'opérande droit. Sinon, la valeur renvoyée est Faux. | 
| Autre valeur | Undefined | Undefined | 

## <> opérateur
<a name="iot-sql-operators-not-eq"></a>

Il renvoie une valeur `Boolean`. Il renvoie la valeur true si les opérandes gauche et droit ne sont pas égaux. Sinon, la valeur renvoyée est false. 

*Syntaxe :* ` expression <> expression`.


**<> opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int | Int | Vrai si l'opérande gauche est différent de l'opérande droit. Sinon, la valeur renvoyée est Faux. | 
| Decimal | Decimal | Vrai si l'opérande gauche est différent de l'opérande droit. Sinon, la valeur renvoyée est Faux. Int est convertie en valeur Decimal avant d'être comparée. | 
| String | String | Vrai si l'opérande gauche est différent de l'opérande droit. Sinon, la valeur renvoyée est Faux. | 
| Tableau | Tableau | Vrai si les éléments de chaque opérande sont différents et ne sont pas dans le même ordre. Sinon, la valeur renvoyée est Faux | 
| Objet | Objet | Vrai si les clés et les valeurs de chaque opérande sont différentes. Sinon, la valeur renvoyée est Faux. L'ordre de keys/values n'a pas d'importance. | 
| Null | Null | Faux. | 
| N'importe quelle valeur | Undefined | Non défini. | 
| Undefined | N'importe quelle valeur | Non défini. | 
| Type non compatible | Type non compatible | Vrai. | 

## = opérateur
<a name="iot-sql-operators-eq"></a>

Il renvoie une valeur `Boolean`. Il renvoie la valeur true si les opérandes gauche et droit sont égaux. Sinon, la valeur renvoyée est false. 

*Syntaxe :* ` expression = expression`.


**= opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int | Int | Vrai si l'opérande gauche est identique à l'opérande droit. Sinon, la valeur renvoyée est Faux. | 
| Decimal | Decimal | Vrai si l'opérande gauche est identique à l'opérande droit. Sinon, la valeur renvoyée est Faux. Int est convertie en valeur Decimal avant d'être comparée. | 
| String | String | Vrai si l'opérande gauche est identique à l'opérande droit. Sinon, la valeur renvoyée est Faux. | 
| Tableau | Tableau | Vrai si les éléments de chaque opérande sont égaux et sont dans le même ordre. Sinon, la valeur renvoyée est Faux. | 
| Objet | Objet | Vrai si les clés et valeurs de chaque opérande sont identiques. Sinon, la valeur renvoyée est Faux. L'ordre de keys/values n'a pas d'importance. | 
| N'importe quelle valeur | Undefined | Undefined. | 
| Undefined | N'importe quelle valeur | Undefined. | 
| Type non compatible | Type non compatible | Faux. | 

## \$1 opérateur
<a name="iot-sql-operators-plus"></a>

Le signe « \$1 » est un opérateur surchargé. Il peut être utilisé pour l'addition ou la concaténation de chaines. 

*Syntaxe :* ` expression + expression`.


**\$1 opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| String | N'importe quelle valeur | Il convertit l'opérande droit en chaîne et l'ajoute à la fin de l'opérande gauche. | 
| N'importe quelle valeur | String | Il convertit l'opérande gauche en chaîne et ajoute l'opérande droit à la fin de l'opérande gauche converti. | 
| Int | Int | Valeur Int. Il ajoute les opérandes ensemble. | 
| Int/Decimal | Int/Decimal | Valeur Decimal. Il ajoute les opérandes ensemble. | 
| Autre valeur | Autre valeur | Undefined. | 

## - opérateur
<a name="iot-sql-operators-sub"></a>

Il soustrait l'opérande droit de l'opérande gauche. 

*Syntaxe :* ` expression - expression`.


**- opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int | Int | Valeur Int. Il soustrait l'opérande droit de l'opérande gauche. | 
| Int/Decimal | Int/Decimal | Valeur Decimal. Il soustrait l'opérande droit de l'opérande gauche. | 
| String/Int/Decimal | String/Int/Decimal | Si toutes les chaînes sont correctement converties en valeurs décimales, une valeur Decimal est renvoyée. Il soustrait l'opérande droit de l'opérande gauche. Sinon, la valeur renvoyée est Undefined. | 
| Autre valeur | Autre valeur | Undefined. | 
| Autre valeur | Autre valeur | Undefined. | 

## \$1 opérateur
<a name="iot-sql-operators-mult"></a>

Il multiplie l'opérande gauche par l'opérande droit. 

*Syntaxe :* ` expression * expression`.


**\$1 opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int | Int | Valeur Int. Il multiplie l'opérande gauche par l'opérande droit. | 
| Int/Decimal | Int/Decimal | Valeur Decimal. Il multiplie l'opérande gauche par l'opérande droit. | 
| String/Int/Decimal | String/Int/Decimal | Si toutes les chaînes sont correctement converties en valeurs décimales, une valeur Decimal est renvoyée. Il multiplie l'opérande gauche par l'opérande droit. Sinon, la valeur renvoyée est Undefined. | 
| Autre valeur | Autre valeur | Undefined. | 

## / opérateur
<a name="iot-sql-operators-div"></a>

Il divise l'opérande gauche par l'opérande droit. 

*Syntaxe :* ` expression / expression`.


**/ opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int | Int | Valeur Int. Il divise l'opérande gauche par l'opérande droit. | 
| Int/Decimal | Int/Decimal | Valeur Decimal. Il divise l'opérande gauche par l'opérande droit. | 
| String/Int/Decimal | String/Int/Decimal | Si toutes les chaînes sont correctement converties en valeurs décimales, une valeur Decimal est renvoyée. Il divise l'opérande gauche par l'opérande droit. Sinon, la valeur renvoyée est Undefined. | 
| Autre valeur | Autre valeur | Undefined. | 

## % opérateur
<a name="iot-sql-operators-mod"></a>

Il renvoie le reste résultant de la division de l'opérande gauche par l'opérande droit. 

*Syntaxe :* ` expression % expression`.


**% opérateur**  

| Opérande gauche | Opérande droit | Output | 
| --- | --- | --- | 
| Int | Int | Valeur Int. Il renvoie le reste résultant de la division de l'opérande gauche par l'opérande droit. | 
| String/Int/Decimal | String/Int/Decimal | Si toutes les chaînes sont correctement converties en valeurs décimales, une valeur Decimal est renvoyée. Il renvoie le reste résultant de la division de l'opérande gauche par l'opérande droit. Sinon la valeur est renvoy, Undefined. | 
| Autre valeur | Autre valeur | Undefined. | 