SQL access 2d array element

0

Hi I have this payload and want to do some comparison operation in aws iot rule:

{
"state":
  {
    "reported":{
        "temp": [
                 [
                 1,
                0,
                2,
                "hello world",
                "-",
               "",
               "",
              0
               ] ,
              []
             ]
           }
     }
}

. I want to compare if temp[0][2] is equal to 2 or not. I have written this sql statement

SELECT * FROM '$aws/topic' WHERE state.reported.temp[0][2] = 2 

but this throws following exception

SqlParseException
Expected a comparison operation: JPathNode(List(IdentNode(state), IdentNode(reported), IdentNode(temp))) state.reported.temp[0][2] =2 -------------------------------------------------^ at 1:50

So anyone up for help? Thanks

1回答
2
承認された回答

To access elements in a collection (array, string, object ) use the SQL function get function:

In your case, use get() instead of square brackets to access your array element:

SELECT * as result FROM 'topic' where get(get(state.reported.temp,0),2) = 2
profile pictureAWS
エキスパート
Jan_B
回答済み 2年前
profile pictureAWS
エキスパート
Greg_B
レビュー済み 2年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ