我有一个nvarchar(max)
列,其JSON blob的结构如下:
[
{"QuestionName":"Question1", "AnswerValue":"123456"},
{"QuestionName":"Question2", "AnswerValue":"987654"},
{"QuestionName":"Question3", "AnswerValue":"951753"}
]
我要在基于集合的操作中执行此操作,因为我要撤回5万条记录。我想获得答案值where QuestionName = Question2
。
在上述情况下,我想返回987654。此值可能并非每次都在数组的完全相同的位置。
使用JSon时,我非常环保,更不用说在SQL Server中使用它了。我相信我想要的是
JSON_VALUE(MyJSonColumn, '???')
但我不确定如何真正获得所需的东西。
答案 0 :(得分:1)
您可以使用OPENJSON
:
SELECT a.questionName, a.answerValue
FROM t
CROSS APPLY OPENJSON(col)
WITH(QuestionName VARCHAR(100) N'$."QuestionName"', AnswerValue INT N'$."AnswerValue"') AS a
WHERE questionName = 'Question2';