【发布时间】:2022-09-15 15:29:22
【问题描述】:
我有一个查询,它几乎返回了我需要的数据:
SELECT *
FROM a in c.Things
WHERE ARRAY_CONTAINS([\'ThingA\', \'ThingB\'], a.Name)
问题是数组[\'ThingA\', \'ThingB\'] 不能被硬编码,因为数组中的值应该根据一些查询动态生成。对于此示例,该查询是这样的:
select VALUE ARRAY (
SELECT VALUE a.Name
FROM a in c.Things
where a.Visible)
from c
WHERE c.Discriminator=\'Type\'
返回类似:[\'ThingOne\', \'ThingTwo\']
是否可以像这样在 ARRAY_CONTAINS 中包含查询:
SELECT *
FROM a in c.Attributes
WHERE ARRAY_CONTAINS(
( select VALUE ARRAY(
SELECT VALUE a.Name
FROM a in c.Things
where a.Visible)
from c
WHERE c.Discriminator=\'Type\'
)
, a.Name)
如果我在 Cosmos DB Studio 中运行它,我会收到以下错误:
Microsoft.Azure.Cosmos.Query.Core.Exceptions.ExpectedQueryPartitionProviderException: {\"errors\":[{\"severity\":\"Error\",\"location\":{\"start\":147, \"end\":148},\"code\":\"SC2001\",\"message\":\"无法解析标识符\'c\'。\"}
标签: azure-cosmosdb azure-cosmosdb-sqlapi