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

SQL Server中OPENJSON返回type列的枚举值及对应含义咨询

好问题!我来帮你理清楚SQL Server中OPENJSON函数返回的type列的枚举值和对应含义,这确实是日常使用中容易忽略但很实用的细节。

OPENJSON type列的枚举值与含义

OPENJSON返回的type列是tinyint类型,用来标记对应value的JSON原生数据类型,具体的枚举值和对应含义如下:

  • 0: 空值(null)—— 对应JSON里的null值
  • 1: 字符串(string)—— 比如你示例中name字段的"John"就属于这类
  • 2: 数字(number)—— 像示例里的age:30,还有price数组里的1100、999这类数值都对应这个类型
  • 3: 对象(object)—— 比如cars数组里每个包含make、models的子JSON对象
  • 4: 数组(array)—— 示例中的cars本身,以及每个汽车对象里的models、price数组都属于这类
  • 5: 布尔值(boolean)—— 对应JSON里的true或false(你的示例里没有这类数据,但如果存在的话会返回这个值)

结合你的示例理解

拿你给出的JSON和查询来说:

  • name行的type值是1(字符串)
  • age行的type值是2(数字)
  • cars行的type值是4(数组)
  • 当你深入解析cars数组里的子对象时,每个子对象的type值是3(对象)

另外,你还可以利用type列做筛选,比如只想查询所有字符串类型的键值对,可以这么写:

select * from openjson(@json,'$') where type = 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:02:27