

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 연산자
<a name="iot-sql-operators"></a>

SELECT 및 WHERE 절에서 다음 연산자를 사용할 수 있습니다.

## AND 연산자
<a name="iot-sql-operators-and"></a>

`Boolean` 결과를 반환합니다. 논리적 AND 연산을 수행합니다. 왼쪽 및 오른쪽 피연산자가 true일 경우 true를, 그렇지 않을 경우 false를 반환합니다. `Boolean` 피연산자 또는 대/소문자를 구분하지 않는 "true" 또는 "false" 문자열 피연산자가 필요합니다.

*구문:* ` expression AND expression`.


**AND 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Boolean | Boolean | Boolean. 양쪽 피연산자가 true일 경우 true입니다. 그렇지 않으면 false입니다. | 
| String/Boolean | String/Boolean | 모든 문자열이 "true" 또는 "false"(대/소문자를 구분하지 않음)일 경우 문자열은 Boolean로 변환된 후 정상적으로 boolean AND boolean로 처리됩니다. | 
| 기타 값 | 기타 값 | Undefined. | 

## OR 연산자
<a name="iot-sql-operators-or"></a>

`Boolean` 결과를 반환합니다. 논리적 OR 연산을 수행합니다. 왼쪽 또는 오른쪽 피연산자가 true일 경우 true를, 그렇지 않을 경우 false를 반환합니다. 그렇지 않을 경우 false를 반환합니다. `Boolean` 피연산자 또는 대/소문자를 구분하지 않는 "true" 또는 "false" 문자열 피연산자가 필요합니다.

*구문:* ` expression OR expression`.


**OR 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Boolean | Boolean | Boolean. 어느 한 피연산자가 true일 경우 true입니다. 그렇지 않으면 false입니다. | 
| String/Boolean | String/Boolean | 모든 문자열이 "true" 또는 "false"(대/소문자를 구분하지 않음)인 경우 문자열은 부울로 변환되고 정상적으로 boolean OR boolean으로 처리됩니다. | 
| 기타 값 | 기타 값 | Undefined. | 

## NOT 연산자
<a name="iot-sql-operators-not"></a>

`Boolean` 결과를 반환합니다. 논리적 NOT 연산을 수행합니다. 피연산자가 false일 경우 true를, 그렇지 않은 경우 false를 반환합니다. `Boolean` 피연산자 또는 대/소문자를 구분하지 않는 "true" 또는 "false" 문자열 피연산자가 필요합니다.

*구문:* `NOT expression`.


**NOT 연산자**  

| 피연산자 | 출력 | 
| --- | --- | 
| Boolean | Boolean. 피연산자가 false일 경우 true입니다. 그렇지 않은 경우 true입니다. | 
| String | 문자열이 'true' 또는 'false'(대/소문자를 구분하지 않음)일 경우 문자열은 해당하는 부울 값으로 변환되고 반대 값이 반환됩니다. | 
| 기타 값 | Undefined. | 

## IN 연산자
<a name="iot-sql-operators-in"></a>

`Boolean` 결과를 반환합니다. WHERE 절의 IN 연산자를 사용하여 값이 배열의 값과 일치하는지 확인할 수 있습니다. 일치 항목이 발견되면 true를 반환하고 그렇지 않으면 false를 반환합니다.

*구문:* ` expression IN expression`.


**IN 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int/Decimal/String/Array/Object | Array | 배열에서 Integer/Decimal/String/Array/Object 요소가 발견되면 true입니다. 그렇지 않으면 false입니다. | 

*예:*

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

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

이 예제에서는 `arr`이라는 배열에 3이 존재하므로 `where 3 in arr` 조건 절이 true로 평가됩니다. 따라서 SQL 문에서 `select * from 'a/b'`가 실행됩니다. 이 예제는 배열이 이기종일 수 있음을 보여줍니다.

## EXISTS 연산자
<a name="iot-sql-operators-exists"></a>

`Boolean` 결과를 반환합니다. 조건부 절에서 EXISTS 연산자를 사용하여 하위 쿼리에 요소가 있는지 테스트할 수 있습니다. 하위 쿼리가 하나 이상의 요소를 반환하는 경우 true를 반환하고 하위 쿼리가 요소를 반환하지 않는 경우 false를 반환합니다.

*구문:* ` expression`.

*예:*

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

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

이 예제에서는 `arr`이라는 배열에 3이 존재하므로 `where exists (select * from arr as a where a = 3)` 조건 절이 true로 평가됩니다. 따라서 SQL 문에서 `select * from 'a/b'`가 실행됩니다.

*예:*

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

이 예제에서는 JSON 객체 `e` 내의 배열에 객체 `{"foo":2}`가 포함되어 있기 때문에 `where exists (select * from e as e where foo = 2)` 조건 절이 true로 평가됩니다. 따라서 SQL 문에서 `select * from 'a/b'`가 실행됩니다.

## > 연산자
<a name="iot-sql-operators-greater"></a>

`Boolean` 결과를 반환합니다. 왼쪽 피연산자가 오른쪽 피연산자보다 클 경우 true를 반환합니다. 두 피연산자 모두 `Decimal`로 변환된 후 비교됩니다.

*구문:* `expression > expression`.


**> 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. 왼쪽 피연산자가 오른쪽 피연산자보다 클 경우 true입니다. 그렇지 않으면 false입니다. | 
| String/Int/Decimal | String/Int/Decimal | 모든 문자열을 Decimal로 변환할 수 있는 경우 Boolean입니다. 왼쪽 피연산자가 오른쪽 피연산자보다 클 경우 true를 반환합니다. 그렇지 않으면 false입니다. | 
| 기타 값 | Undefined. | Undefined. | 

## >= 연산자
<a name="iot-sql-operators-greater-equal"></a>

`Boolean` 결과를 반환합니다. 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같을 경우 true, 그렇지 않을 경우 false를 반환합니다. 두 피연산자 모두 `Decimal`로 변환된 후 비교됩니다.

*구문:* `expression >= expression`.


**>= 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같을 경우 true입니다. 그렇지 않으면 false입니다. | 
| String/Int/Decimal | String/Int/Decimal | 모든 문자열을 Decimal로 변환할 수 있는 경우 Boolean입니다. 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같을 경우 true, 그렇지 않을 경우 false를 반환합니다. 그렇지 않으면 false입니다. | 
| 기타 값 | Undefined. | Undefined. | 

## < 연산자
<a name="iot-sql-operators-less"></a>

`Boolean` 결과를 반환합니다. 왼쪽 피연산자가 오른쪽 피연산자보다 작을 경우 true를 반환합니다. 두 피연산자 모두 `Decimal`로 변환된 후 비교됩니다.

*구문:* `expression < expression`.


**< 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. 왼쪽 피연산자가 오른쪽 피연산자보다 작을 경우 true입니다. 그렇지 않으면 false입니다. | 
| String/Int/Decimal | String/Int/Decimal | 모든 문자열을 Decimal로 변환할 수 있는 경우 Boolean입니다. 왼쪽 피연산자가 오른쪽 피연산자보다 작을 경우 true를 반환합니다. 그렇지 않으면 false입니다. | 
| 기타 값 | Undefined | Undefined | 

## <= 연산자
<a name="iot-sql-operators-less-equal"></a>

`Boolean` 결과를 반환합니다. 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같을 경우 true, 그렇지 않을 경우 false를 반환합니다. 두 피연산자 모두 `Decimal`로 변환된 후 비교됩니다.

*구문:* `expression <= expression`.


**<= 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int/Decimal | Int/Decimal | Boolean. 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같을 경우 true입니다. 그렇지 않으면 false입니다. | 
| String/Int/Decimal | String/Int/Decimal | 모든 문자열을 Decimal로 변환할 수 있는 경우 Boolean입니다. 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같을 경우 true, 그렇지 않을 경우 false를 반환합니다. 그렇지 않으면 false입니다. | 
| 기타 값 | Undefined | Undefined | 

## <> 연산자
<a name="iot-sql-operators-not-eq"></a>

`Boolean` 결과를 반환합니다. 왼쪽 및 오른쪽 피연산자가 다를 경우 true를, 그렇지 않을 경우 false를 반환합니다.

*구문:* ` expression <> expression`.


**<> 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int | Int | 왼쪽 피연산자가 오른쪽 피연산자와 다를 경우 true입니다. 그렇지 않으면 false입니다. | 
| Decimal | Decimal | 왼쪽 피연산자가 오른쪽 피연산자와 다를 경우 true입니다. 그렇지 않으면 false입니다. Int은(는) Decimal(으)로 변환된 후 비교됩니다. | 
| String | String | 왼쪽 피연산자가 오른쪽 피연산자와 다를 경우 true입니다. 그렇지 않으면 false입니다. | 
| 배열 | 배열 | 각 피연산자의 항목이 같지 않고 동일한 순서가 아닐 경우 true입니다. 그렇지 않으면 false입니다. | 
| 객체 | 객체 | 각 피연산자의 키 및 값이 다를 경우 true입니다. 그렇지 않으면 false입니다. 키/값의 순서는 무시됩니다. | 
| Null | Null | False. | 
| 임의의 값 | Undefined | Undefined | 
| Undefined | 임의의 값 | Undefined | 
| 일치하지 않은 형식 | 일치하지 않은 형식 | True. | 

## = 연산자
<a name="iot-sql-operators-eq"></a>

`Boolean` 결과를 반환합니다. 왼쪽 및 오른쪽 피연산자가 동일한 경우 true를, 그렇지 않을 경우 false를 반환합니다.

*구문:* ` expression = expression`.


**= 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int | Int | 왼쪽 피연산자가 오른쪽 피연산자와 같을 경우 true입니다. 그렇지 않으면 false입니다. | 
| Decimal | Decimal | 왼쪽 피연산자가 오른쪽 피연산자와 같을 경우 true입니다. 그렇지 않으면 false입니다. Int은(는) Decimal(으)로 변환된 후 비교됩니다. | 
| String | String | 왼쪽 피연산자가 오른쪽 피연산자와 같을 경우 true입니다. 그렇지 않으면 false입니다. | 
| 배열 | 배열 | 각 피연산자의 항목이 같고 동일한 순서일 경우 true입니다. 그렇지 않으면 false입니다. | 
| 객체 | 객체 | 각 피연산자의 키 및 값이 같을 경우 true입니다. 그렇지 않으면 false입니다. 키/값의 순서는 무시됩니다. | 
| 임의의 값 | Undefined | Undefined. | 
| Undefined | 임의의 값 | Undefined. | 
| 일치하지 않은 형식 | 일치하지 않은 형식 | False. | 

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

"\$1"는 오버로드된 연산자입니다. 문자열 연결 또는 추가에 사용할 수 있습니다.

*구문:* ` expression + expression`.


**\$1 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| String | 임의의 값 | 오른쪽 피연산자를 문자열로 변환하여 왼쪽 피연산자의 끝에 연결합니다. | 
| 임의의 값 | String | 왼쪽 피연산자를 문자열로 변환하고 오른쪽 피연산자를 변환된 왼쪽 피연산자의 끝에 연결합니다. | 
| Int | Int | Int 값 피연산자를 함께 더합니다. | 
| Int/Decimal | Int/Decimal | Decimal 값 피연산자를 함께 더합니다. | 
| 기타 값 | 기타 값 | Undefined. | 

## - 연산자
<a name="iot-sql-operators-sub"></a>

왼쪽 피연산자에서 오른쪽 피연산자를 뺍니다.

*구문:* ` expression - expression`.


**- 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int | Int | Int 값 왼쪽 피연산자에서 오른쪽 피연산자를 뺍니다. | 
| Int/Decimal | Int/Decimal | Decimal 값 왼쪽 피연산자에서 오른쪽 피연산자를 뺍니다. | 
| String/Int/Decimal | String/Int/Decimal | 모든 문자열이 올바르게 10진수로 변환된 경우 Decimal 값이 반환됩니다. 왼쪽 피연산자에서 오른쪽 피연산자를 뺍니다. 그렇지 않은 경우 Undefined를 반환합니다. | 
| 기타 값 | 기타 값 | Undefined. | 
| 기타 값 | 기타 값 | Undefined. | 

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

왼쪽 피연산자에 오른쪽 피연산자를 곱합니다.

*구문:* ` expression * expression`.


**\$1 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int | Int | Int 값 왼쪽 피연산자에 오른쪽 피연산자를 곱합니다. | 
| Int/Decimal | Int/Decimal | Decimal 값 왼쪽 피연산자에 오른쪽 피연산자를 곱합니다. | 
| String/Int/Decimal | String/Int/Decimal | 모든 문자열이 올바르게 10진수로 변환된 경우 Decimal 값이 반환됩니다. 왼쪽 피연산자에 오른쪽 피연산자를 곱합니다. 그렇지 않은 경우 Undefined를 반환합니다. | 
| 기타 값 | 기타 값 | Undefined. | 

## / 연산자
<a name="iot-sql-operators-div"></a>

왼쪽 피연산자를 오른쪽 피연산자로 나눕니다.

*구문:* ` expression / expression`.


**/ 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int | Int | Int 값 왼쪽 피연산자를 오른쪽 피연산자로 나눕니다. | 
| Int/Decimal | Int/Decimal | Decimal 값 왼쪽 피연산자를 오른쪽 피연산자로 나눕니다. | 
| String/Int/Decimal | String/Int/Decimal | 모든 문자열이 올바르게 10진수로 변환된 경우 Decimal 값이 반환됩니다. 왼쪽 피연산자를 오른쪽 피연산자로 나눕니다. 그렇지 않은 경우 Undefined를 반환합니다. | 
| 기타 값 | 기타 값 | Undefined. | 

## % 연산자
<a name="iot-sql-operators-mod"></a>

왼쪽 피연산자를 오른쪽 피연산자로 나눈 나머지를 반환합니다.

*구문:* ` expression % expression`.


**% 연산자**  

| 왼쪽 피연산자 | 오른쪽 피연산자 | 출력 | 
| --- | --- | --- | 
| Int | Int | Int 값 왼쪽 피연산자를 오른쪽 피연산자로 나눈 나머지를 반환합니다. | 
| String/Int/Decimal | String/Int/Decimal | 모든 문자열이 올바르게 10진수로 변환된 경우 Decimal 값이 반환됩니다. 왼쪽 피연산자를 오른쪽 피연산자로 나눈 나머지를 반환합니다. 그렇지 않을 경우 Undefined입니다. | 
| 기타 값 | 기타 값 | Undefined. | 