如何获取s3选择查询以返回单个行

问题描述 投票:0回答:1

数据结构如此

{
    "rows": [
        {
            "rowId": "IDP_2z8dfj9KbB1hrPI_1554508960_1_1",
            "version": "1554508960",
            "lastUpdatedDate": 1554508960604,
            "createdAt": 1554508960604,
            "payload": ""
        },
        {
            "rowId": "IDP_2z8dfj9KbB1hrPI_1554508960_1_2",
            "version": "1554508960",
            "lastUpdatedDate": 1554508960604,
            "createdAt": 1554508960604,
            "payload": ""
        },
        {
            "rowId": "IDP_2z8dfj9KbB1hrPI_1554508960_1_3",
            "version": "1554508960",
            "lastUpdatedDate": 1554508960604,
            "createdAt": 1554508960604,
            "payload": ""
        }
    ]
}

以下选择查询

select * from S3Object s where 'IDP_2z8dfj9KbB1hrPI_1554508960_1_2' in s[*]."rows"[*]."rowId"

返回整个JSON文档,我希望它只返回一行,即

[{
            "rowId": "IDP_2z8dfj9KbB1hrPI_1554508960_1_2",
            "version": "1554508960",
            "lastUpdatedDate": 1554508960604,
            "createdAt": 1554508960604,
            "payload": ""
}]

我已经尝试了几种查询变体

select s.rows[0] from S3Object s where 'IDP_2z8dfj9KbB1hrPI_1554508960_1_2' in s[*]."rows"[*]."rowId"

它只返回1条记录,但这是错误的记录。

select * from S3Object s where  s[*]."rows"[*]."rowId"='IDP_2z8dfj9KbB1hrPI_1554508960_1_2'

没有回报。

关于我做错了什么的任何想法?

amazon-s3 amazon-s3-select
1个回答
1
投票

在对查询进行了几次修改之后,我能够得到我期望的结果

select * from S3Object[*]."rows"[*] as r  where ('IDP_2z8dfj9KbB1hrPI_1554508960_1_1') in r[*]."rowId"
© www.soinside.com 2019 - 2024. All rights reserved.