【发布时间】:2019-02-14 10:35:16
【问题描述】:
我正在将一个 json 文件导入 SQL 2016,该文件在嵌套值结构中具有一些嵌套的名称-值对。这是我遇到问题的这些对中的值,例如。
{ "name": "Colour", "value": "Orange" }, { "name": "Calories", "value": "25" }
sql:
Declare @JSON varchar(max)
SELECT @JSON = BulkColumn
FROM OPENROWSET (BULK 'C:\temp\fruit.json', SINGLE_CLOB) as j
If (ISJSON(@JSON)=1) BEGIN
Select * from openjson ( @JSON )
WITH(
id int,
fruit varchar(20),
Colour varchar(20) '$.values.Colour',
Weight int '$.values.Weight'
) as Orders
END
ELSE
Select 'JSON is invalid!'
其中的结果是:
id fruit Colour Weight
1 orange NULL NULL
23 Banana NULL NULL
完整(测试)数据..
[ { “身份证”:1, “水果”:“橙子”, “价值观”:[ {“名称”:“颜色”,“值”:“橙色”}, {“名称”:“重量”,“值”:“16”}, {“名称”:“卡路里”,“价值”:“25”} ] }, { “身份证”:23, “水果”:“香蕉”, “价值观”:[ {“名称”:“颜色”,“值”:“黄色”}, {“名称”:“重量”,“值”:“30”}, {“名称”:“卡路里”,“价值”:“250”} ] } ]
【问题讨论】:
标签: json sql-server sql-server-2016 open-json