设备接入 IoTDA-SQL语句:函数列表
函数列表
规则引擎提供多种函数,您可以在编写SQL时使用这些函数,实现多样化数据处理。
函数名称 |
携带参数 |
用途 |
返回值类型 |
限制 |
---|---|---|---|---|
GET_TAG |
String tagKey |
获取指定tag_key对应的tag_value。 GET_TAG('testTagName') |
字符串 |
- |
CONTAINS_TAG |
String tagKey |
判断是否包含指定tag_key。 CONTAINS_TAG('testTagName') |
布尔值 |
- |
GET_SERVICE |
String serviceId,boolean fuzzy |
获取service,若fuzzy为false或者不填,则获取指定service_id的service,若fuzzy为true,则通过模糊匹配查询service,如果您在一个消息体里有多个service_id相同的service,结果目前不保证。 GET_SERVICE('Battery',true) |
Json结构体格式 |
只能在属性上报时使用 |
GET_SERVI CES |
String serviceId,boolean fuzzy |
获取services,若fuzzy为false或者不填,获取指定service_id的services,若fuzzy为true,则通过模糊匹配查询services。查询结果将汇合为一个数组。 GET_SERVICES('Battery',true) |
JSON数组格式 |
只能在属性上报时使用 |
CONTAINS_SERVICES |
String serviceId,boolean fuzzy |
若fuzzy为false或者不填,则判断是否存在指定service_id。若fuzzy为true,则使用模糊匹配的方式判断属性中的service_id是否包含指定参数。 CONTAINS_SERVICES('Battery',true) |
布尔值 |
只能在属性上报时使用 |
GET_SERVICE_PROPERTIES |
String serviceId |
获取指定service_id的service中的properties字段。 GET_SERVICE_PROPERTIES('Battery') |
Json结构体格式 |
只能在属性上报时使用 |
GET_SERVICE_PROPERTY |
String serviceId, String propertyKey |
获取指定service_id的service中的properties中指定属性的值。 示例: GET_SERVICE_PROPERTY('Battery','batteryLevel') |
字符串 |
限制只能在属性上报时使用 |
STARTS_WITH |
String input, String prefix |
判断input的值是否以prefix开头。 STARTS_WITH('abcd','abc')STARTS_WITH(notify_data.header.device_id,'abc')STARTS_WITH(notify_data.header.device_id,notify_data.header.product_id) |
布尔值 |
- |
ENDS_WITH |
String input, String suffix |
判断input的值是否以suffix结尾。 ENDS_WITH('abcd','bcd')ENDS_WITH(notify_data.header.device_id,'abc')ENDS_WITH(notify_data.header.device_id,notify_data.header.node_id) |
布尔值 |
- |
CONCAT |
String input1, String input2 |
用于连接字符串,返回连接后的字符串。 CONCAT('ab','cd')CONCAT(notify_data.header.device_id,'abc')CONCAT(notify_data.header.product_id,notify_data.header.node_id) |
字符串 |
- |
REPLACE |
String input, String target, String replacement |
对字符串某部分值进行替换。即用replacement替换input中的target。 REPLACE(notify_data.header.node_id,'nodeId','IMEI') |
- |
- |
SUBSTRING |
String input, int beginIndex, int endIndex(required=false) |
获取字符串的子串,即返回input从beginIndex(包含)到endIndex(不包含)的子字符串。 说明:endIndex非必填。 SUBSTRING(notify_data.header.device_id,3)SUBSTRING(notify_data.header.device_id,3,12) |
- |
- |
LOWER |
String input |
将input中的值全部转换成小写 LOWER(notify_data.header.app_id) |
- |
- |
UPPER |
String input |
将input中的值全部转换成大写 UPPER(notify_data.header.app_id) |
- |
- |