【问题标题】:cosmos db query self join with null arraycosmos db 使用空数组查询自联接
【发布时间】:2018-10-04 07:00:14
【问题描述】:

我想从 cosmos db azure 获取记录。有以下两个条件-

SELECT p.name, p.id
FROM Product p join grp in p.groups
where grp.name = 'abc' or ARRAY_LENGTH(grp) = 0 

第一部分是给我没有或条件的结果,即(文档 1)。但我也想要那些不包含 p.groups 中任何记录的记录,即(文档 2)。

我的数据:

文档 1-

"id": "123",
"name": "Test Name",
"groups": [
        {
            "name": "abc"        }
]

文档 2-

"id": "1234",
"name": "Test Name Blank",
"groups": []

预期输出:

[
    {
        "name": "Test Name",
        "id": "123"
    },
{
        "name": "Test Name Blank",
        "id": "1234"
    },
]

【问题讨论】:

    标签: sql azure azure-cosmosdb


    【解决方案1】:

    您可以使用以下 sql:

    SELECT c.id,c.name from c where ARRAY_LENGTH(c.groups) =0 or ARRAY_CONTAINS(c.groups, {"name": "abc"}, true)
    

    输出结果:

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多