本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
WHERE 子句
WHERE 子句可确定是否执行规则指定的操作。如果 WHERE 子句的计算结果为 true,则执行规则操作。否则,不执行规则操作。
WHERE 子句支持 数据类型、运算符、函数、文本、Case 语句、JSON 扩展、替换模板 和 嵌套对象查询。
示例:
传入负载已发布至 topic/subtopic
:{"color":"red",
"temperature":40}
。
SQL:SELECT color AS my_color FROM 'topic/subtopic' WHERE temperature > 50
AND color <> 'red'
。
在这种情况下,规则将被触发,但不会执行规则所指定的操作。没有传出的负载。
您可以在 WHERE 子句中使用函数和运算符。但是,您无法引用在 SELECT 中通过 AS 关键字创建的任何别名。首先评估 WHERE 语句,以确定是否评估 SELECT。
带非 JSON 负载的示例:
传入的非 JSON 负载,发布位置:“topic/subtopic”:“80”
SQL:`SELECT decode(encode(*, 'base64'), 'base64') AS value FROM 'topic/subtopic'
WHERE decode(encode(*, 'base64'), 'base64') > 50
在这种情况下,规则将被触发,并且将执行规则所指定的操作。传出的负载将由 SELECT 子句转换为 JSON 负载 {"value":80}
。