IN查询与2字段组合

时间:2019-04-05 10:30:07

标签: azure-cosmosdb azure-cosmosdb-sqlapi

我在cosmos DB文档中有一个设备列表(千个),Make和SerialNumber是每个资产的唯一标识符。

[{
    "make": "CAT",
    "serialNumber": "A1",
    "NAME": "CAR"
},
{
    "make": "ZAT",
    "serialNumber": "B1",
    "NAME": "BUS"
}, {
    "make": "CAT",
    "serialNumber": "C1",
    "NAME": "TRUCK"
}, {
    "make": "ABC",
    "serialNumber": "A1",
    "NAME": "PAVER"
}, {
    "make": "ZAT",
    "serialNumber": "A1",
    "NAME": "BIKE"
}
]

我需要根据以下输入设备输入,从上述文档中获取资产的完整详细信息。

[{
    "make": "CAT",
    "serialNumber": "A1"
},
{
    "make": "ZAT",
    "serialNumber": "B1"
}, {
    "make": "CAT",
    "serialNumber": "C1"
}
]

我正在使用以下查询来获取完整的详细信息(我知道以下查询不正确)。总的来说,我在单个查询中传递了100多个设备的序列号。

select * from t where serialNumber in (A1,B1,C1) and make in (CAT,ZAT,CAT)

有没有办法结合两个字段来编写IN查询?

预期结果

A1猫

B1 ZAT

C1 CAT

1 个答案:

答案 0 :(得分:1)

Pankaj Rawat,请使用此查询sql,它可以满足您的要求。

SELECT c FROM c where
ARRAY_CONTAINS([
    {"serialNumber":"A1","make":"CAT"},
    {"serialNumber":"B1","make":"ZAT"},
    {"serialNumber":"C1","make":"CAT"}
    ],
    {"serialNumber": c.serialNumber,
       "make":c.make}
    )

输出:

enter image description here