

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Operatori
<a name="iot-sql-operators"></a>

Gli operatori seguenti possono essere usati nelle clausole SELECT e WHERE. 

## Operatore AND
<a name="iot-sql-operators-and"></a>

Restituisce un risultato `Boolean`. Esegue un'operazione AND logica. Restituisce true se gli operandi sinistro e destro sono true. In caso contrario, restituisce false. Sono necessari operandi di tipo `Boolean` o operandi di tipo String "true" o "false" che non facciano distinzione tra maiuscole e minuscole.

*Sintassi:* ` expression AND expression`.


**Operatore AND**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Boolean | Boolean | Boolean. True se entrambi gli operandi sono true. In caso contrario, false. | 
| String/Boolean | String/Boolean | Se tutte le stringhe sono "true" o "false" (senza distinzione tra maiuscole e minuscole), vengono convertite in Boolean ed elaborate normalmente come tipi boolean AND boolean. | 
| Altro valore | Altro valore | Undefined. | 

## Operatore OR
<a name="iot-sql-operators-or"></a>

Restituisce un risultato `Boolean`. Esegue un'operazione OR logica. Restituisce true se l'operando sinistro o quello destro è true. In caso contrario, restituisce false. Sono necessari operandi di tipo `Boolean` o operandi di tipo String "true" o "false" che non facciano distinzione tra maiuscole e minuscole.

*Sintassi:* ` expression OR expression`.


**Operatore OR**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Boolean | Boolean | Boolean. True se uno degli operandi è true. In caso contrario, false. | 
| String/Boolean | String/Boolean | Se tutte le stringhe sono "true" o "false" (senza distinzione tra maiuscole e minuscole), vengono convertite in valori booleani ed elaborate normalmente come boolean OR boolean. | 
| Altro valore | Altro valore | Undefined. | 

## Operatore NOT
<a name="iot-sql-operators-not"></a>

Restituisce un risultato `Boolean`. Esegue un'operazione NOT logica. Restituisce true se l'operando è false. In caso contrario, restituisce true. È necessario un operando di tipo `Boolean` o un operando di tipo String "true" o "false" senza distinzione tra maiuscole e minuscole.

*Sintassi:* `NOT expression`.


**Operatore NOT**  

| Operando | Output | 
| --- | --- | 
| Boolean | Boolean. True se l'operando è false. In caso contrario, true. | 
| String | Se la stringa è "true" o "false" (senza distinzione tra maiuscole e minuscole), viene convertita nel valore booleano corrispondente e viene restituito il valore opposto. | 
| Altro valore | Undefined. | 

## Operatore IN
<a name="iot-sql-operators-in"></a>

Restituisce un risultato `Boolean`. È possibile utilizzare l'operatore IN in una clausola WHERE per verificare se un valore corrisponde a qualsiasi valore in un array. Restituisce true se viene trovata la corrispondenza e false in caso contrario.

*Sintassi:* ` expression IN expression`.


**Operatore IN**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int/Decimal/String/Array/Object | Array | Vero se l'Objectelemento Integer DecimalString/Array///viene trovato nell'array. In caso contrario, false. | 

*Esempio*:

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

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

In questo esempio, la clausola condition `where 3 in arr` restituirà true perché 3 è presente nell'array denominato`arr`. Quindi, nell'istruzione SQL, `select * from 'a/b'` verrà eseguito. Questo esempio mostra anche che l'array può essere eterogeneo.

## Operatore EXISTS
<a name="iot-sql-operators-exists"></a>

Restituisce un risultato `Boolean`. È possibile utilizzare l'operatore EXISTS in una clausola condizionale per verificare l'esistenza di elementi in una sottoquery. Restituisce true se la sottoquery restituisce uno o più elementi e false se la sottoquery non restituisce alcun elemento. 

*Sintassi:* ` expression`.

*Esempio*:

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

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

In questo esempio, la clausola condition `where exists (select * from arr as a where a = 3)` restituirà true perché 3 è presente nell'array denominato. `arr` Quindi, nell'istruzione SQL, `select * from 'a/b'` verrà eseguito.

*Esempio*:

```
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}]}
```

In questo esempio, la clausola condition `where exists (select * from e as e where foo = 2)` verrà valutata vera perché l'array all'`e`interno dell'oggetto JSON contiene l'oggetto. `{"foo":2}` Quindi, nell'istruzione SQL, `select * from 'a/b'` verrà eseguito.

## Operatore >
<a name="iot-sql-operators-greater"></a>

Restituisce un risultato `Boolean`. Restituisce true se l'operando sinistro è maggiore dell'operando destro. Entrambi gli operandi vengono convertiti in un tipo `Decimal` e quindi confrontati. 

*Sintassi:* `expression > expression`.


**Operatore >**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. True se l'operando sinistro è maggiore dell'operando destro. In caso contrario, false. | 
| String/Int/Decimal | String/Int/Decimal | Se tutte le stringhe possono essere convertite in Decimal, restituisce un valore Boolean. Restituisce true se l'operando sinistro è maggiore dell'operando destro. In caso contrario, false. | 
| Altro valore | Undefined. | Undefined. | 

## Operatore >=
<a name="iot-sql-operators-greater-equal"></a>

Restituisce un risultato `Boolean`. Restituisce true se l'operando sinistro è maggiore o uguale all'operando destro. Entrambi gli operandi vengono convertiti in un tipo `Decimal` e quindi confrontati. 

*Sintassi:* `expression >= expression`.


**Operatore >=**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. True se l'operando sinistro è maggiore o uguale all'operando destro. In caso contrario, false. | 
| String/Int/Decimal | String/Int/Decimal | Se tutte le stringhe possono essere convertite in Decimal, restituisce un valore Boolean. Restituisce true se l'operando sinistro è maggiore o uguale all'operando destro. In caso contrario, false. | 
| Altro valore | Undefined. | Undefined. | 

## Operatore <
<a name="iot-sql-operators-less"></a>

Restituisce un risultato `Boolean`. Restituisce true se l'operando sinistro è minore dell'operando destro. Entrambi gli operandi vengono convertiti in un tipo `Decimal` e quindi confrontati. 

*Sintassi:* `expression < expression`.


**Operatore <**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. True se l'operando sinistro è minore dell'operando destro. In caso contrario, false. | 
| String/Int/Decimal | String/Int/Decimal | Se tutte le stringhe possono essere convertite in Decimal, restituisce un valore Boolean. Restituisce true se l'operando sinistro è minore dell'operando destro. In caso contrario, false. | 
| Altro valore | Undefined | Undefined | 

## Operatore <=
<a name="iot-sql-operators-less-equal"></a>

Restituisce un risultato `Boolean`. Restituisce true se l'operando sinistro è minore o uguale all'operando destro. Entrambi gli operandi vengono convertiti in un tipo `Decimal` e quindi confrontati. 

*Sintassi:* `expression <= expression`.


**Operatore <=**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. True se l'operando sinistro è minore o uguale all'operando destro. In caso contrario, false. | 
| String/Int/Decimal | String/Int/Decimal | Se tutte le stringhe possono essere convertite in Decimal, restituisce un valore Boolean. Restituisce true se l'operando sinistro è minore o uguale all'operando destro. In caso contrario, false. | 
| Altro valore | Undefined | Undefined | 

## Operatore <>
<a name="iot-sql-operators-not-eq"></a>

Restituisce un risultato `Boolean`. Restituisce true se gli operandi sinistro e destro non sono uguali. In caso contrario, restituisce false. 

*Sintassi:* ` expression <> expression`.


**Operatore <>**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int | Int | True se l'operando sinistro non è uguale all'operando destro. In caso contrario, false. | 
| Decimal | Decimal | True se l'operando sinistro non è uguale all'operando destro. In caso contrario, false. Int viene convertito in Decimal prima di essere confrontato. | 
| String | String | True se l'operando sinistro non è uguale all'operando destro. In caso contrario, false. | 
| Array | Array | True se gli elementi di ogni operando non sono uguali e non sono nello stesso ordine. In caso contrario, false | 
| Oggetto | Oggetto | True se le chiavi e i valori di ogni operando non sono uguali. In caso contrario, false. L'ordine di non keys/values è importante. | 
| Null | Null | Falso. | 
| Qualsiasi valore | Undefined | Undefined. | 
| Undefined | Qualsiasi valore | Undefined. | 
| Tipo non corrispondente | Tipo non corrispondente | True. | 

## Operatore =
<a name="iot-sql-operators-eq"></a>

Restituisce un risultato `Boolean`. Restituisce true se gli operandi sinistro e destro sono uguali. In caso contrario, restituisce false. 

*Sintassi:* ` expression = expression`.


**Operatore =**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int | Int | True se l'operando sinistro è uguale all'operando destro. In caso contrario, false. | 
| Decimal | Decimal | True se l'operando sinistro è uguale all'operando destro. In caso contrario, false. Int viene convertito in Decimal prima di essere confrontato. | 
| String | String | True se l'operando sinistro è uguale all'operando destro. In caso contrario, false. | 
| Array | Array | True se gli elementi di ogni operando sono uguali e sono nello stesso ordine. In caso contrario, false. | 
| Oggetto | Oggetto | True se le chiavi e i valori di ogni operando sono uguali. In caso contrario, false. L'ordine di non keys/values è importante. | 
| Qualsiasi valore | Undefined | Undefined. | 
| Undefined | Qualsiasi valore | Undefined. | 
| Tipo non corrispondente | Tipo non corrispondente | Falso. | 

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

L'operatore "\$1" è un operatore di overload. Può essere usato per la concatenazione di stringhe o la somma. 

*Sintassi:* ` expression + expression`.


**Operatore \$1**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| String | Qualsiasi valore | Converte l'operando destro in una stringa e lo concatena alla fine dell'operando sinistro. | 
| Qualsiasi valore | String | Converte l'operando sinistro in una stringa e lo concatena all'operando destro alla fine dell'operando sinistro convertito. | 
| Int | Int | Int value. Somma gli operandi. | 
| Int/Decimal | Int/Decimal | Decimal value. Somma gli operandi. | 
| Altro valore | Altro valore | Undefined. | 

## Operatore -
<a name="iot-sql-operators-sub"></a>

Sottrae l'operando destro dall'operando sinistro. 

*Sintassi:* ` expression - expression`.


**Operatore -**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int | Int | Int value. Sottrae l'operando destro dall'operando sinistro. | 
| Int/Decimal | Int/Decimal | Decimal value. Sottrae l'operando destro dall'operando sinistro. | 
| String/Int/Decimal | String/Int/Decimal | Se tutte le stringhe possono essere convertite in valori decimali, viene restituito un valore Decimal. Sottrae l'operando destro dall'operando sinistro. In caso contrario, restituisce Undefined. | 
| Altro valore | Altro valore | Undefined. | 
| Altro valore | Altro valore | Undefined. | 

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

Moltiplica l'operando sinistro per l'operando destro. 

*Sintassi:* ` expression * expression`.


**Operatore \$1**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int | Int | Int value. Moltiplica l'operando sinistro per l'operando destro. | 
| Int/Decimal | Int/Decimal | Decimal value. Moltiplica l'operando sinistro per l'operando destro. | 
| String/Int/Decimal | String/Int/Decimal | Se tutte le stringhe possono essere convertite in valori decimali, viene restituito un valore Decimal. Moltiplica l'operando sinistro per l'operando destro. In caso contrario, restituisce Undefined. | 
| Altro valore | Altro valore | Undefined. | 

## Operatore /
<a name="iot-sql-operators-div"></a>

Divide l'operando sinistro per l'operando destro. 

*Sintassi:* ` expression / expression`.


**Operatore /**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int | Int | Int value. Divide l'operando sinistro per l'operando destro. | 
| Int/Decimal | Int/Decimal | Decimal value. Divide l'operando sinistro per l'operando destro. | 
| String/Int/Decimal | String/Int/Decimal | Se tutte le stringhe possono essere convertite in valori decimali, viene restituito un valore Decimal. Divide l'operando sinistro per l'operando destro. In caso contrario, restituisce Undefined. | 
| Altro valore | Altro valore | Undefined. | 

## Operatore %
<a name="iot-sql-operators-mod"></a>

Restituisce il resto della divisione dell'operando sinistro per l'operando destro. 

*Sintassi:* ` expression % expression`.


**Operatore %**  

| Operando sinistro | Operando destro | Output | 
| --- | --- | --- | 
| Int | Int | Int value. Restituisce il resto della divisione dell'operando sinistro per l'operando destro. | 
| String/Int/Decimal | String/Int/Decimal | Se tutte le stringhe possono essere convertite in valori decimali, viene restituito un valore Decimal. Restituisce il resto della divisione dell'operando sinistro per l'operando destro. In caso contrario, Undefined. | 
| Altro valore | Altro valore | Undefined. | 