我正在尝试从Stream Analytics查询语言中的数组属性中提取特定值。
我的数据如下:
"context": {
"custom": {
"dimensions": [{
"MacAddress": "ma"
},
{
"IpAddress": "ipaddr"
}]
}
}
我试图获得一个结果,其中“MacAddress”,“IpAddress”为列标题,“ma”,“ipaddr”为行。
我目前通过此查询实现此目的:
SELECT
GetRecordPropertyValue(GetArrayElement(MySource.context.custom.dimensions, 0), 'MacAddress') AS MacAddress,
GetRecordPropertyValue(GetArrayElement(MySource.context.custom.dimensions, 1), 'IpAddress') AS IpAddress,
我正在尝试使用CROSS APPLY,但到目前为止还没有运气。在CROSS APPLY查询下面:
SELECT
flat.ArrayValue.MacAddress as MacAddress,
flat.ArrayValue.IpAddress as IpAddress
FROM
[ffapi-track-events] as MySource
CROSS APPLY GetArrayElements(MySource.context.custom.dimensions) as flat
这个产生两行而不是一行:
MacAddress, IpAddress
ma ,
, ipaddr
所以当我这样写的时候,我很想念它。
我想绕过硬编码索引0,因为它不能保证MacAddress不会用“IpAddress”切换位置......所以我需要像条件一样的FindElementInArray,或者用维度数组连接的方法。 / p>
有这样的事吗?
谢谢。