

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

# 데이터 타입
<a name="iot-sql-data-types"></a>

 AWS IoT 규칙 엔진은 모든 JSON 데이터 형식을 지원합니다.


**지원되는 데이터 유형**  

| Type | 의미 | 
| --- | --- | 
| Int | 이산 Int. 최대 34자리. | 
| Decimal |  정밀도 34자리, 0이 아닌 최소 크기 1E-999, 최대 크기 9.999…E999의 `Decimal`  일부 함수는 34자리 정밀도 대신 배정밀도의 `Decimal`을 반환합니다. SQL V2(2016-03-23)에서 `10.0`와(과) 같은 정수인 숫자 값은 예상되는 `Decimal` 값(`10.0`) 대신 `Int` 값(`10`)으로 처리됩니다. 정수 숫자 값을 `Decimal` 값으로 안정적으로 처리하려면 규칙 쿼리 문에 SQL V1(2015-10-08)을 사용하세요.   | 
| Boolean | True 또는 False | 
| String | UTF-8 문자열 | 
| Array | 동일한 형식일 필요가 없는 일련의 값 | 
| Object | 키 및 값으로 구성된 JSON 값입니다. 키는 문자열이어야 합니다. 값은 임의의 형식일 수 있습니다. | 
| Null | JSON에 의해 정의된 Null입니다. 이는 값 없음을 나타내는 실제 값입니다. SQL 문에서 Null 키워드를 사용하여 명시적으로 Null 값을 생성할 수 있습니다. 예: "SELECT NULL AS n FROM 'topic/subtopic'"  | 
| Undefined |  값이 아닙니다. 값을 생략하는 것 이외에는 JSON에서 이를 명시적으로 표현할 수 없습니다. 예를 들어 객체 `{"foo": null}`에서 키 "foo"는 NULL을 반환하지만 키 "bar"는 `Undefined`를 반환합니다. 내부적으로는 SQL 언어가 `Undefined`를 값으로 취급하지만 JSON에서는 표현이 불가능합니다. 따라서 JSON으로 직렬화될 경우 결과는 `Undefined`입니다. <pre> {"foo":null, "bar":undefined} </pre> 다음과 같이 JSON으로 직렬화됩니다. <pre> {"foo":null}</pre> 마찬가지로, `Undefined`는 자체에 의해 직렬화될 경우 빈 문자열로 변환됩니다. 잘못된 인수(예: 잘못된 형식, 잘못된 인수 개수 등)로 호출된 함수는 `Undefined`를 반환합니다.  | 

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

다음 표에는 (함수에 잘못된 형식의 값이 입력된 경우) 값이 한 형식에서 다른 형식으로 변환될 경우의 결과가 나와 있습니다. 예를 들어 절대값 함수 "abs"(`Int` 또는 `Decimal`이 필요함)에 `String`이 주어질 경우 이 함수는 다음 규칙에 따라 `String`을 `Decimal`로 변환하려고 시도합니다. 이 경우 'abs("-5.123")'는 'abs(-5.123)'으로 취급됩니다.

**참고**  
`Array`, `Object`, `Null` 또는 `Undefined`로는 변환이 시도되지 않습니다.


**소수로 변환**  

| 인수 유형 | 결과 | 
| --- | --- | 
| Int | 소수점이 없는 Decimal | 
| Decimal | 소스 값 | 
| Boolean | Undefined(명시적으로 cast 함수를 사용하여 true = 1.0, false = 0.0으로 변환할 수 있습니다.) | 
| String | SQL 엔진은 문자열을 로 구문 분석하려고 시도합니다Decimal.는 정규식과 일치하는 문자열을 구문 분석하려고 AWS IoT 시도합니다^-?\$1d\$1(\$1.\$1d\$1)?((?i)E-?\$1d\$1)?\$1. "0", "-1.2", "5E-12"는 모두 자동으로 Decimal로 변환되는 문자열의 예입니다. | 
| 배열 | Undefined. | 
| 객체 | Undefined. | 
| Null | Null. | 
| 정의되지 않음 | Undefined. | 


**정수로 변환**  

| 인수 유형 | 결과 | 
| --- | --- | 
| Int | 소스 값 | 
| Decimal | 가장 가까운 Int로 반올림한 소스 값 | 
| Boolean | Undefined(명시적으로 cast 함수를 사용하여 true = 1.0, false = 0.0으로 변환할 수 있습니다.) | 
| String |  SQL 엔진은 문자열을 로 구문 분석하려고 시도합니다Decimal.는 정규식과 일치하는 문자열을 구문 분석하려고 AWS IoT 시도합니다^-?\$1d\$1(\$1.\$1d\$1)?((?i)E-?\$1d\$1)?\$1. "0", "-1.2", "5E-12"는 모두 자동으로 Decimals. AWS IoT attempts로 변환되어를 String로 변환하는 문자열의 예Decimal입니다. 그런 다음 해당 문자열의 소수점을 잘라Decimal내어를 만듭니다Int. | 
| 배열 | Undefined. | 
| 객체 | Undefined. | 
| Null | Null. | 
| 정의되지 않음 | Undefined. | 


**부울로 변환**  

| 인수 유형 | 결과 | 
| --- | --- | 
| Int | Undefined(명시적으로 cast 함수를 사용하여 0 = False, 0이 아닌 값 = True로 변환할 수 있습니다.) | 
| Decimal | Undefined(명시적으로 cast 함수를 사용하여 0 = False, 0이 아닌 값 = True로 변환할 수 있습니다.) | 
| Boolean | 원래 값 | 
| String | "true"=True, "false"=False(대/소문자를 구분하지 않음). 다른 문자열 값은 Undefined입니다. | 
| 배열 | Undefined. | 
| 객체 | Undefined. | 
| Null | Undefined. | 
| 정의되지 않음 | Undefined. | 


**문자열로 변환**  

| 인수 유형 | 결과 | 
| --- | --- | 
| Int | 표준 표기법을 따른 Int의 문자열 표현. | 
| Decimal | 유효숫자 표기법을 따를 수 있는 Decimal의 문자열 표현. | 
| Boolean | "true" 또는 "false". 모두 소문자. | 
| String | 원래 값 | 
| 배열 | JSON으로 직렬화된 Array입니다. 결과 문자열은 대괄호 안의 쉼표로 구분된 목록입니다. String은 따옴표로 묶입니다. Decimal, Int, Boolean 및 Null은 따옴표로 묶이지 않습니다. | 
| 객체 | JSON으로 직렬화된 객체입니다. 결과 문자열은 키-값 페어의 쉼표로 구분된 목록이며 중괄호로 묶입니다. String은 따옴표로 묶입니다. Decimal, Int, Boolean 및 Null은 따옴표로 묶이지 않습니다. | 
| Null | Undefined. | 
| 정의되지 않음 | Undefined | 