【发布时间】:2020-09-17 09:12:03
【问题描述】:
我想将以下 JSON 文件导入 SQL Server
{
"Positions" : [
{
"Position" : {
"code" : 5000042479,
"Company" : "IN0009",
"Region" : "APAC"
}
},
{
"Position" : {
"code" : 1432042479,
"Company" : "IN0010",
"Region" : "SAFG"
}
}
]
}
到目前为止我尝试过的是:
DECLARE @json NVARCHAR(1000)
SELECT
@json = N'{
"Positions" : [ { "Position" : { "code" : 5000042479,
"Company" : "IN0009",
"Region" : "APAC" } },
{ "Position" : { "code" : 1432042479,
"Company" : "IN0010",
"Region" : "SAFG" } } ] }'
SELECT
[Position.code],
[Position.Company],
[Position.Region]
FROM
OPENJSON (@json, '$.Positions') WITH ( [Position.code] varchar(20), [Position.Company] varchar(20), [Position.Region] INT ) AS Pos
但问题是它返回 NULL 值:
+---------------+------------------+-----------------+
| Position.code | Position.Company | Position.Region |
+---------------+------------------+-----------------+
| NULL | NULL | NULL |
+---------------+------------------+-----------------+
| NULL | NULL | NULL |
+---------------+------------------+-----------------+
我应该如何读取这些值?有没有一种方法可以从 JSON 中动态获取列名,而无需像我一样声明它们。 [Position.code] varchar(20), [Position.Company] varchar(20)... 等等?
【问题讨论】:
标签: sql json sql-server import