【问题标题】:How to do query on json array field如何查询json数组字段
【发布时间】:2018-06-22 13:48:32
【问题描述】:

如何查询json数组字段。

我的sql表字段是个人数据,下面是示例数据

[{"Name":"A","Age":"12"},
{"Name":"B","Age":"22"},
{"Name":"C","Age":"22"}]

所以需要的查询类似于 Name=A

【问题讨论】:

  • 请描述您的预期输出

标签: sql-server-2016


【解决方案1】:

这应该将 JSON 放入您可以正常查询的格式:

select 
 SUBSTRING([name], CHARINDEX(':', [name]) + 1, 8000) as [name]
,SUBSTRING([age], CHARINDEX(':', [age]) + 1, 8000) as [name]

from
(select
 SUBSTRING(value, 1, CHARINDEX(',', value) - 1) AS [name]
,SUBSTRING(value, CHARINDEX(':',value)+3,CHARINDEX(',',value)-1) as [age]

from
(select replace(replace(replace(replace(strTest, '[', ''), '}', ''), ']', ''), '"', '') as strMod
from [dbo].[tblTest]
) as a

cross apply string_split(strMod, '{')
where value <> ''
) as b

【讨论】:

    猜你喜欢
    • 2018-11-14
    • 2017-04-03
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    相关资源
    最近更新 更多