如何在SSMS中查询JSON列内category.value的具体值?
提取JSON字段中特定值的解决方案
嗨,我来帮你搞定这个SSMS里的JSON取值问题~
你之前用JSON_QUERY返回整个category对象是因为这个函数的作用就是提取JSON中的对象或数组,所以它会把{"value":CAT, "demo":A....}整个结构返回给你。如果只想拿到value对应的CAT这个具体值,你需要用专门提取标量值的JSON_VALUE函数,它能直接定位到JSON里的单个属性值。
正确的查询语句
SELECT JSON_VALUE(TABLENAME, '$.category.value') AS CategoryValue FROM TABLENAME
简单解释
$.category.value是JSON路径表达式:$代表整个JSON对象,category是你要访问的顶层键,value就是category对象下的目标属性。- 用
AS CategoryValue可以给结果列起一个清晰的别名,方便阅读。
可选优化(处理空值或无效JSON)
如果你的JSON字段可能存在NULL或者格式不合法的情况,可以用ISNULL来避免返回NULL,让结果更友好:
SELECT ISNULL(JSON_VALUE(TABLENAME, '$.category.value'), '无数据') AS CategoryValue FROM TABLENAME
内容的提问来源于stack exchange,提问作者Bhargav Andipara
相关产品推荐
相关产品推荐

