gpt4 book ai didi

sql-server - SQL Server 2016 JSON_VALUE 语法

转载 作者:行者123 更新时间:2023-12-02 03:11:56 24 4
gpt4 key购买 nike

我有一个 API 以以下形式返回数据:

  "cars" : {"VW":{"name":"Volkswagen","country":"Germany"}, 
"GM":{"name":"General Motors","country":"USA"},
"RR":{"name":"Rolls Royce","country":"UK"}
}

使用 JSON_VALUE ,如何引用两个字符指示符“VW”、“GM”等?
我可以使用路径 $.cars 获取名称和国家/地区但看不到如何获取(未命名)字段。 API 不是我的,所以我无法规定格式。

最佳答案

这个查询会返回什么?

set @json = N'  
["cars" : {
"VW":{
"name":"Volkswagen",
"country":"Germany"},
"GM":{
"name":"General Motors",
"country":"USA"},
"RR":{
"name":"Rolls Royce",
"country":"UK"}
}]';

select *
from OPENJSON( @json )

你能分享一下输出吗?

我很抱歉给出这个答案,但评论太长了,这个查询可能有助于找到 OP 想要获取的元素。

编辑#1

这个:
Declare @js nvarchar(4000) = N'{"cars" : {
"VW":{"name":"Volkswagen","country":"Germany"},
"GM":{"name":"General Motors","country":"USA"},
"RR":{"name":"Rolls Royce","country":"UK"}}}'

SELECT [key]
FROM OPENJSON (@js,'$.cars')

会给你你需要的值(value)。

编辑#2

你可以引用这个值:
SELECT p1.[key],
p2.[key],
p2.[value]
FROM OPENJSON (@js, '$.cars') as p1
CROSS APPLY (
SELECT *
FROM OPENJSON ([value], '$')
) p2
WHERE p1.[key] = 'VW'

输出:
key key     value      
--- ------- ----------
VW name Volkswagen
VW country Germany

(2 row(s) returned)

关于sql-server - SQL Server 2016 JSON_VALUE 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39543633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com