翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SELECT 句
句は基本的に AWS IoT SELECTANSISQLSELECT句と同じですが、いくつかの小さな違いがあります。
SELECT 句は、データ型、演算子、関数、、リテラルCase ステートメント、、JSON 拡張機能置換テンプレートネストされたオブジェクトのクエリ、、および をサポートしますバイナリペイロード。
SELECT 句を使用して、受信MQTTメッセージから情報を抽出できます。SELECT *
を使用して、受信メッセージのペイロード全体を取得することもできます。以下に例を示します。
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL statement:SELECT * FROM 'topic/subtopic'
Outgoing payload:{"color":"red", "temperature":50}
ペイロードがJSONオブジェクトの場合は、オブジェクト内のキーを参照できます。出力ペイロードにはキーと値のペアが含まれます。以下に例を示します。
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL statement:SELECT color FROM 'topic/subtopic'
Outgoing payload:{"color":"red"}
AS キーワードを使用してキーの名前を変更できます。以下に例を示します。
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL:SELECT color AS my_color FROM 'topic/subtopic'
Outgoing payload:{"my_color":"red"}
カンマで区切ることで、複数の項目を選択できます。以下に例を示します。
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL:SELECT color as my_color, temperature as fahrenheit FROM 'topic/subtopic'
Outgoing payload:{"my_color":"red","fahrenheit":50}
「*」を含む複数の項目を選択して、受信ペイロードに項目を追加できます。以下に例を示します。
Incoming payload published on topic
'topic/subtopic'
: {"color":"red", "temperature":50} SQL: SELECT *, 15 as speed FROM 'topic/subtopic' Outgoing payload: {"color":"red", "temperature":50, "speed":15}
"VALUE"
キーワードを使用して、JSONオブジェクトではない送信ペイロードを生成できます。SQL バージョン では2015-10-08
、選択できる項目は 1 つだけです。SQL バージョン 2016-03-23
以降では、最上位オブジェクトとして出力する配列を選択することもできます。
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL:SELECT VALUE color FROM 'topic/subtopic'
Outgoing payload:"red"
'.'
構文を使用して、受信ペイロード内のネストされたJSONオブジェクトをドリルダウンできます。以下に例を示します。
Incoming payload published on topic
'topic/subtopic'
:{"color":{"red":255,"green":0,"blue":0}, "temperature":50}
SQL:SELECT color.red as red_value FROM 'topic/subtopic'
Outgoing payload:{"red_value":255}
数字やハイフン (マイナス) 文字などの予約文字を含むJSONオブジェクト名とプロパティ名を使用する方法については、「」を参照してください。 JSON 拡張機能
関数を使用して受信ペイロードを変換できます (関数 を参照)。グループ化するには括弧を使用します。以下に例を示します。
Incoming payload published on topic
'topic/subtopic'
:{"color":"red", "temperature":50}
SQL:SELECT (temperature - 32) * 5 / 9 AS celsius, upper(color) as my_color FROM 'topic/subtopic'
Outgoing payload:{"celsius":10,"my_color":"RED"}