【发布时间】:2019-07-27 03:05:47
【问题描述】:
我有一个练习要从一个较大的 JSON 对象中提取一些数据,但是这些数据是作为多个对象添加的,或者可能是一个数组。
下面的例子;
DECLARE @json NVARCHAR(MAX) = '{
"N.data.-ce731645-e4ef-4784-bc02-bb90b4c9e9e6": "Some Data",
"N.data.sessionDates-7f1790d3-9175-43aa-962b-161ee3b8615f": [
{
"date_1": "2018-10-20T23:00:00.000Z"
},
{
"date_1": "2018-10-21T23:00:00.000Z"
}
]
}'
我需要将这些日期时间条目从“date_1”标识符中提取到理想情况下的 CSV 列表中。从中我可以进行自己的操作。
2018-10-20T23:00:00.000Z, 2018-10-21T23:00:00.000Z
我熟悉 JSON_VALUE(),但不熟悉它在简单的一维数据之外的使用。
到目前为止我所拥有的;
DECLARE @json NVARCHAR(MAX) = '{
"N.data.-ce731645-e4ef-4784-bc02-bb90b4c9e9e6": "Some Data",
"N.data.sessionDates-7f1790d3-9175-43aa-962b-161ee3b8615f": [
{
"date_1": "2018-10-20T23:00:00.000Z"
},
{
"date_1": "2018-10-21T23:00:00.000Z"
}
]
}'
SELECT value FROM OPENJSON(@json)
有没有办法在复杂的 substring() 和 replace() 使用之外实现预期的输出?
使用 SQL Server 2017
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Express Edition (64-bit) on Windows Server 2012 R2 Datacenter 6.3 <X64> (Build 9600: ) (Hypervisor)
谢谢
【问题讨论】:
标签: sql json sql-server extract