将JSON转换为表格

时间:2016-09-22 12:49:27

标签: sql sql-server json

{
    "ID":1,
    "KEY1":"",
    "ARRAYKEY1":[
        {
             "ARRAYKEY":""
             "OBJECTKEY":{
                 "OBJ":""
             }
        }
    ]
}

上面是我存储在数据库中的JSON对象,我想使用OPENJSON创建表格格式。我知道我可以完成整个OPENJSON WITH()并手动创建所有列。我想知道是否有人知道如何以递归方式或以编程方式创建表而不必识别表的每个键。我最终可能会有几十个字段。我并不担心排除任何物品。如果我想要取回所有记录,我甚至可以从新的2016 SQL Server开始?

1 个答案:

答案 0 :(得分:2)

Here是官方文档。

SET @json =  
N'[  
      { "id" : 2,"info": { "name": "John", "surname": "Smith" }, "age": 25 },  
      { "id" : 5,"info": { "name": "Jane", "surname": "Smith" }, "dob": "2005-11-04T12:00:00" }  
]'  

SELECT *  
FROM OPENJSON(@json)  
 WITH (id int 'strict $.id',  
       firstName nvarchar(50) '$.info.name', lastName nvarchar(50) '$.info.surname',  
       age int, dateOfBirth datetime2 '$.dob')