如何解决SQL OpenJson - 无法在 json 中为 json 创建列
我一直在 sql 中使用 OPENJSON 并有一个问题。
假设我有以下 JSON,
[
{ "id" : 2,"firstName": "John","lastName": "Smith","age": 25,"dateOfBirth": "2007-03-25T12:00:00","data":{"$source":"Online"} },]
我可以使用 OPENJSON 为除 source
之外的所有列动态创建列。
这是我的代码:
SELECT *
FROM OPENJSON(@json)
WITH (id int,firstName nvarchar(50),lastName nvarchar(50),age int,dateOfBirth datetime2,[$Source] varchar(50))
除了嵌套的 json data
之外,我正在恢复每一列。
随意编辑问题标题
解决方法
不太清楚为什么您的来源以“$”开头。如果要从嵌套的 json 中获取数据,则需要标识列的根。例如
DECLARE @JSON NVARCHAR(max) =
N'[
{ "id" : 2,"firstName": "John","lastName": "Smith","age": 25,"dateOfBirth": "2007-03-25T12:00:00","data":{"source":"Online"} }
]'
SELECT *
FROM OPENJSON(@json)
WITH (id int,firstName nvarchar(50),lastName nvarchar(50),age int,dateOfBirth datetime2,source VARCHAR(50) '$.data.source',data nvarchar(max) AS JSON)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。