В запросе с комбинацией из 2 полей

#azure-cosmosdb #azure-cosmosdb-sqlapi

#azure-cosmosdb #azure-cosmosdb-sqlapi

Вопрос:

У меня есть список устройств в документах cosmos DB (тысячи), марка и SerialNumber — это уникальный идентификатор для каждого ресурса.

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

Мне нужно получить полную информацию об активе из вышеуказанных документов на основе приведенных ниже данных устройства ввода.

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

Я использую приведенный ниже запрос для получения полной информации (я знаю, что приведенный ниже запрос неверен). В общем, я получаю передачу 100 последовательных устройств в одном запросе.

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

Есть ли какой-либо способ записать В запросе комбинацию из двух полей?

Ожидаемый результат

A1 CAT

B1 ZAT

C1 CAT

Ответ №1:

Панкадж Рават, пожалуйста, используйте этот запрос 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}
    )
  

Вывод:

введите описание изображения здесь