我想解析一個長逗號分隔值的字符串,如「lat,long,distance ,, elevation」。字符串實際上很長,我需要獲取每個值並將獲取的值保存在dynamodb的不同列中。我正在使用dyamodbv2規則。函數我發現可能是有用的是substring(String,Int [,Int]),length(String),indexof(String,String)和get()。如何使用AWS IoT SQL中的逗號分隔值分析字符串?
比如我得到的數據是這樣的:
{
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中提供的其他功能。
我無法使用rails,因爲我試圖在AWS IoT規則中獲取值。我只能使用AWS IoT SQL功能。 –