将 JSON 数组数据添加到临时或真实 table

Add JSON array data into a temp or real table

我有JSON这样

DECLARE @json VARCHAR(MAX) = '{
    "prefix": "data",
    "body": [
        "Hello_1",
        "Hello_2",
        "Hello_3",
        "Hello_4"
    ]
}'

现在我只想将“正文”数组添加到 table 中并从 table

中获取此输出

DECLARE @json VARCHAR(MAX) = '{
    "prefix": "data",
    "body": [
        "Hello_1",
        "Hello_2",
        "Hello_3",
        "Hello_4"
    ]
}'

select value Name
from openjson(@json,'$.body')

或更明确的:

DECLARE @json VARCHAR(MAX) = '{
    "prefix": "data",
    "body": [
        "Hello_1",
        "Hello_2",
        "Hello_3",
        "Hello_4"
    ]
}'

select Name
from openjson(@json,'$.body')
with 
(
  Name  VARCHAR(20) '$'
)  

输出

Name
--------------------
Hello_1
Hello_2
Hello_3
Hello_4

(4 rows affected)

经过一些尝试,我得到的查询是

SELECT [VALUE] AS NAME into #temp_table FROM OPENJSON(@json,'$.body') 


SELECT * FROM #temp_table