将 JSON 数组转换为行集
OPENJSON 函数解析 JSON 对象的集合,并将 JSON 文本中的值作为行集返回。
declare @json nvarchar(4000) = N'[
{"Number":"SO43659","Date":"2011-05-31T00:00:00","Customer": "MSFT","Price":59.99,"Quantity":1},
{"Number":"SO43661","Date":"2011-06-01T00:00:00","Customer":"Nokia","Price":24.99,"Quantity":3}
]'
SELECT *
FROM OPENJSON (@json)
WITH (
Number varchar(200),
Date datetime,
Customer varchar(200),
Quantity int
)
在 WITH 子句中指定了 OPENJSON 函数的返回模式。JSON 对象中的键由列名提取。如果未在 WITH 子句中指定 JSON 中的某个键(例如,此示例中为 Price),则将忽略它。值会自动转换为指定的类型。
数 | 日期 | 顾客 | 数量 |
---|---|---|---|
SO43659 |
2011-05-31T00:00:00 | MSFT | 1 |
SO43661 |
2011-06-01T00:00:00 | 诺基亚 | 3 |