

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

# WHERE 句
<a name="iot-sql-where"></a>

WHERE 句は、ルールで指定されたアクションが実行されるかどうかを決定します。WHERE 句が true と評価する場合、ルールアクションが実行されます。それ以外の場合、ルールアクションは実行されません。

WHERE 句は、[データ型](iot-sql-data-types.md)、、[オペレータ](iot-sql-operators.md)、[関数](iot-sql-functions.md)[リテラル](iot-sql-literals.md)、[Case ステートメント](iot-sql-case.md)、[JSON 拡張](iot-sql-json.md)、[変数](iot-sql-set.md#iot-sql-set-usage)、および をサポートします[ネストされたオブジェクトのクエリ](iot-sql-nested-queries.md)。

**例**:

`topic/subtopic` に公開された受信ペイロード: `{"color":"red", "temperature":40}`。

SQL: `SELECT color AS my_color FROM 'topic/subtopic' WHERE temperature > 50 AND color <> 'red'`。

この場合、ルールはトリガーされますが、ルールで指定されたアクションは実行されません。出力ペイロードはありません。

WHERE 句の関数と演算子を使用できます。ただし、SELECT に AS キーワードで作成されたエイリアスを参照することはできません。(SELECT が評価されたかどうかを判断するため、WHERE 句は最初に評価されます。) 

**非 JSON ペイロードのある例:**

`topic/subtopic` で公開された受信非 JSON ペイロード: `80`

SQL: ``SELECT decode(encode(*, 'base64'), 'base64') AS value FROM 'topic/subtopic' WHERE decode(encode(*, 'base64'), 'base64') > 50`

この場合、ルールはトリガーされますが、ルールで指定されたアクションは実行されません。送信ペイロードは SELECT 句によって JSON ペイロード `{"value":80}` として変換されます。