我有一个SQL表中的列,该列具有以下类似的JSON值:
[
{"address":{"value":"A9"},
"value":{"type":11,"value":"John"}},
{"address":{"value":"A10"},
"value":{"type":11,"value":"Doe"}}]
MSDN中对于JSON_VALUE或JSON_QUERY的示例要求根节点为json对象。如何查询返回"address"为A9且"value"为John的行?我正在使用SQL Azure。
address nvarchar(200) '$.address.value',
name nvarchar(200) '$.value.value' ) a
WHERE ISJSON(Data)>0 AND address = 'A9' AND name = 'John' - frosty
JSON_VALUE(@json, '$[0]')
- 这将返回未命名数组的第一个元素。但是似乎不可能引用该元素内的键。例如,无法说JSON_VALUE('$[0].address.value')
- 这非常令人沮丧!它是可能的,即显然有效,但始终返回NULL
。 - El Ronnoco["a", "b", "c"]
怎么办?我无法使其工作:select id from openjson(@json) r cross apply openjson(r.value) with (id varchar(10) '$') x;
。它会报错,显示“'$'附近有语法错误。” :-( - Krishnan