

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# データ型
<a name="iot-sql-data-types"></a>

 AWS IoT ルールエンジンは、すべての JSON データ型をサポートしています。


**サポートされているデータの種類**  

| タイプ | 意味 | 
| --- | --- | 
| Int | 個別の Int。最大 34 桁。 | 
| Decimal |  0 以外の最小サイズ 1E-999 および最大サイズ 9.999...E999 の、精度が 34 桁の `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 | A UTF-8 文字列。 | 
| Array | 同じ型を持つ必要のない一連の値。 | 
| Object | キーと値で構成される JSON 値。キーは文字列である必要があります。値は任意のタイプにできます。 | 
| Null | Null JSON で定義されます。値がないことを表す、実際の値です。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>

次の表では 1 つのタイプの値が別のタイプに変換されると (正しくない型の値が関数に付与された場合) 結果を表示します。たとえば、絶対値関数「abs」 (`Int` または `Decimal` を想定します) が `String` に与えられると、以下のルールにしたがって、`String` を `Decimal` に変換するように試みます。この場合、「abs("-5.123")」は「abs(-5.123)」として処理されます。

**注記**  
`Array`、`Object`、`Null`、`Undefined` へ試みられた変換はありません。


**Decimal に**  

| 引数の型 | 結果 | 
| --- | --- | 
| Int | 小数点のない Decimal。 | 
| Decimal | ソース値。 | 
| Boolean | Undefined。(キャスト関数を明示的に使用して、true = 1.0、false = 0.0. を変換できます。) | 
| String | SQL エンジンは、文字列を Decimal. AWS IoT attempts として解析し、正規表現に一致する文字列を解析しようとします^-?\$1d\$1(\$1.\$1d\$1)?((?i)E-?\$1d\$1)?\$1。「0」、「-1.2」、「5E-12」は、Decimal に自動的に変換される文字列の例です。 | 
| 配列 | Undefined. | 
| オブジェクト | Undefined. | 
| Null | Null. | 
| 未定義 | Undefined. | 


**Int に**  

| 引数の型 | 結果 | 
| --- | --- | 
| Int | ソース値。 | 
| Decimal | 最も近い Int に丸められたソース値。 | 
| Boolean | Undefined。(キャスト関数を明示的に使用して、true = 1.0、false = 0.0. を変換できます。) | 
| String |  SQL エンジンは、文字列を Decimal. AWS IoT attempts として解析し、正規表現に一致する文字列を解析しようとします^-?\$1d\$1(\$1.\$1d\$1)?((?i)E-?\$1d\$1)?\$1。「0」、「-1.2」、「5E-12」はすべて、 を String に変換するために Decimals. AWS IoT attempts に自動的に変換されDecimal、その小数点以下を切り捨てDecimalて を作成しますInt。 | 
| 配列 | Undefined. | 
| オブジェクト | Undefined. | 
| Null | Null. | 
| 未定義 | Undefined. | 


**ブールに**  

| 引数の型 | 結果 | 
| --- | --- | 
| Int | Undefined (cast 関数を明示的に使用して、0 = False、any\$1nonzero\$1value = True を変換できます)。 | 
| Decimal | Undefined (キャスト関数を明示的に使用して、0 = False、any\$1nonzero\$1value = 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. | 
| 未定義 | 未定義。 | 