You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cosmos DB中通用验证数组A内所有values值是否相同?

Cosmos DB 验证数组内所有values值一致的通用查询方案

针对你需要验证数组A内所有values值是否一致的需求,这里提供两种通用的查询方案,支持任意长度的数组:

方法一:使用ALL函数验证所有元素匹配第一个元素的值

通过ALL函数检查数组中每个元素的values是否与第一个元素的values相等,只要有一个不相等就会返回false:

SELECT 
    ALL(SELECT VALUE (n.values = c.A[0].values) FROM n IN c.A) AS allValuesMatch
FROM c 
WHERE c.id = "1234-wrew-1234314"

如果数组A可能为空,可添加非空判断避免报错:

SELECT 
    ARRAY_LENGTH(c.A) = 0 OR ALL(SELECT VALUE (n.values = c.A[0].values) FROM n IN c.A) AS allValuesMatch
FROM c 
WHERE c.id = "1234-wrew-1234314"

方法二:通过去重后数组长度判断

提取所有values组成新数组,用ARRAY_DISTINCT去重后,判断去重后的数组长度是否为1(长度为1说明所有值都一致):

SELECT 
    ARRAY_LENGTH(ARRAY_DISTINCT(SELECT VALUE n.values FROM n IN c.A)) = 1 AS allValuesMatch
FROM c 
WHERE c.id = "1234-wrew-1234314"

同样,若需要兼容空数组场景:

SELECT 
    ARRAY_LENGTH(c.A) = 0 OR ARRAY_LENGTH(ARRAY_DISTINCT(SELECT VALUE n.values FROM n IN c.A)) = 1 AS allValuesMatch
FROM c 
WHERE c.id = "1234-wrew-1234314"

内容的提问来源于stack exchange,提问作者Apire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:25:51