我正在尝试用逗号分隔的值解析一个长字符串,例如“lat,long,distance,,elevation”。字符串实际上很长,我需要获取每个值并将获取的值保存在 dynamodb 的不同列中。我正在使用 dyamodbv2 规则。我发现可能有用的函数是 substring(String, Int [, Int])、length(String)、indexof(String, String) 和 get()。
例如我得到这样的数据:
{
LOCATION_DATA: "lat,long,distance,,elevation"
}
这是我到目前为止所做的,
//first value - 0 to next comma
substring(LOCATION_DATA, 0, indexof(LOCATION_DATA, ',')) as latitude,
//second value - substring starting from last substring to next comma
substring(substring(LOCATION_DATA, indexof(LOCATION_DATA, ',') +1 ) ,
0,
indexof(substring(LOCATION_DATA, indexof(LOCATION_DATA, ',') +1 ), ',')
) as longitude,
...
但这变得过于冗长,并且转移到下一个逗号分隔值变得越来越困难。有没有办法将逗号分隔的值转换为数组,然后用 get(0), get(1).. 获取它们?我必须以这种方式获取大约 20 个字段!
此外,这些值的长度可以不同,并且某些字段可以为空,例如示例字符串中“距离、、海拔”之间的值。这些空值可以忽略。
就我现在而言,我无法存储和创建自定义函数,或使用http://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions 中提供的任何其他函数。 .html _