设备接入 IOTDA-SQL语句:函数列表

时间:2024-06-03 09:36:16

函数列表

规则引擎提供多种函数,您可以在编写SQL时使用这些函数,实现多样化数据处理。

表2 函数列表

函数名称

携带参数

用途

返回值类型

限制

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_SERVICES

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)

-

-

support.huaweicloud.com/usermanual-iothub/iot_01_0025.html