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

Document DB SQL Api无法查询值为整数的'value'JSON属性

在Document DB SQL API中查询名为value且值为整数的JSON属性

我来帮你搞定这个查询问题!从你给出的示例数据来看,value字段在不同的子属性里类型不一样——比如measurementTime.value是字符串,而systolic.value是整数,这也是你查询时可能遇到障碍的原因。下面给你几个实用的解决方案:

1. 查询包含任意整数类型value的文档

如果你想找出所有至少有一个子属性的value是整数的文档,可以用遍历+类型判断的方式:

SELECT *
FROM c
JOIN r IN c.records
JOIN prop IN r
WHERE IS_NUMBER(prop.value) AND NOT IS_STRING(prop.value)

语句解释:

  • JOIN r IN c.records:遍历每个文档里的records数组元素
  • JOIN prop IN r:遍历每个records元素下的所有子属性(比如measurementTime、systolic)
  • IS_NUMBER(prop.value):判断value是否为数字类型
  • NOT IS_STRING(prop.value):排除那些看起来像数字的字符串(比如"114"),确保只匹配真正的整数/数字类型值

2. 精准查询指定属性的整数value

如果你明确知道要查询的属性(比如systolic或diastolic),可以直接指定属性名,让查询更高效:

SELECT *
FROM c
JOIN r IN c.records
WHERE IS_NUMBER(r.systolic.value) AND r.systolic.value = CAST(r.systolic.value AS INT)

语句解释:

  • IS_NUMBER(r.systolic.value):先判断值是数字类型
  • r.systolic.value = CAST(r.systolic.value AS INT):进一步验证这个数字是整数(排除浮点数,比如114.5这类值)

补充说明

在Azure Cosmos DB(原Document DB)中,JSON的类型是严格区分的,字符串形式的数字("114")和整数(114)会被视为不同类型,所以一定要用类型判断函数来精准筛选,避免误匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:02:34