为 JSON 数组插入
INSERT INTO for JSON array
我得到一些文本文件,其中某些列填充有 JSON 数组。我将文件导入暂存 table。我想使用 INSERT INTO 将文件放入另一个 table,并将 JSON 数组列解析为两列。
我需要一个名为 'military_focus' 的列和另一个名为 'health_insurance_focus' 的列,它们将填充 'true' 或 'false'。使用此 SELECT 语句显示我需要的数据。
SELECT
[network_id]
[network_name],
[network_type],
[service_type_ids],
JSON_VALUE(focus,'$.military_focus') AS military_focus,
JSON_VALUE(focus,'$.health_insurance_focus') AS health_insurance_focus,
[created_at],
[updated_at],
[LoadDt],
[FileNM]
FROM
[Med_Stage].[Provider].[networks]
我正在尝试将其与 INSERT INTO 一起使用,以将其放入另一个 table 中并包含适当的列。我收到一个错误,指出 SELECT 值与 INSERT 列的数量不匹配,因为我要从 Staging table 中的一个 'focus' 列转到目标 [=34] 中的两个列=].
INSERT INTO [Med].[Provider].[networks]
(
[network_id],
[network_name],
[network_type],
[service_type_ids],
[military_focus],
[health_insurance_focus],
[created_at],
[updated_at],
[LoadDt],
[FileNM]
)
SELECT
[network_id]
[network_name],
[network_type],
[service_type_ids],
JSON_VALUE(focus,'$.military_focus') AS military_focus,
JSON_VALUE(focus,'$.health_insurance_focus') AS health_insurance_focus,
[created_at],
[updated_at],
[LoadDt],
[FileNM]
FROM
[Med_Stage].[Provider].[networks]
是的,fiddle就够了,能马上测试突出问题。
你只是在第一列后少了一个逗号
SELECT
[network_id], /* <-- missing comma*/
[network_name],
[network_type],
[service_type_ids],
JSON_VALUE(focus,'$.military_focus') AS military_focus,
JSON_VALUE(focus,'$.health_insurance_focus') AS health_insurance_focus,
[created_at],
[updated_at],
[LoadDt],
[FileNM]
FROM
[Med_Stage].[Provider].[networks]
我得到一些文本文件,其中某些列填充有 JSON 数组。我将文件导入暂存 table。我想使用 INSERT INTO 将文件放入另一个 table,并将 JSON 数组列解析为两列。
我需要一个名为 'military_focus' 的列和另一个名为 'health_insurance_focus' 的列,它们将填充 'true' 或 'false'。使用此 SELECT 语句显示我需要的数据。
SELECT
[network_id]
[network_name],
[network_type],
[service_type_ids],
JSON_VALUE(focus,'$.military_focus') AS military_focus,
JSON_VALUE(focus,'$.health_insurance_focus') AS health_insurance_focus,
[created_at],
[updated_at],
[LoadDt],
[FileNM]
FROM
[Med_Stage].[Provider].[networks]
我正在尝试将其与 INSERT INTO 一起使用,以将其放入另一个 table 中并包含适当的列。我收到一个错误,指出 SELECT 值与 INSERT 列的数量不匹配,因为我要从 Staging table 中的一个 'focus' 列转到目标 [=34] 中的两个列=].
INSERT INTO [Med].[Provider].[networks]
(
[network_id],
[network_name],
[network_type],
[service_type_ids],
[military_focus],
[health_insurance_focus],
[created_at],
[updated_at],
[LoadDt],
[FileNM]
)
SELECT
[network_id]
[network_name],
[network_type],
[service_type_ids],
JSON_VALUE(focus,'$.military_focus') AS military_focus,
JSON_VALUE(focus,'$.health_insurance_focus') AS health_insurance_focus,
[created_at],
[updated_at],
[LoadDt],
[FileNM]
FROM
[Med_Stage].[Provider].[networks]
是的,fiddle就够了,能马上测试突出问题。
你只是在第一列后少了一个逗号
SELECT
[network_id], /* <-- missing comma*/
[network_name],
[network_type],
[service_type_ids],
JSON_VALUE(focus,'$.military_focus') AS military_focus,
JSON_VALUE(focus,'$.health_insurance_focus') AS health_insurance_focus,
[created_at],
[updated_at],
[LoadDt],
[FileNM]
FROM
[Med_Stage].[Provider].[networks]