Добавление данных массива JSON во временную или реальную таблицу

#sql #sql-server #stored-procedures

#sql #sql-сервер #хранимые процедуры

Вопрос:

У меня есть JSON, подобный этому

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

Теперь я хочу добавить только массив «body» в таблицу и получить этот вывод из таблицы

введите описание изображения здесь

Комментарии:

1. Привет, @dale, я получил запрос после нескольких попыток, он прост в использовании запроса SELECT-INSERT

Ответ №1:

 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)
 

Комментарии:

1. Спасибо @david-browne-microsoft, но я хотел вставить их в таблицу. Я получил запрос после нескольких попыток. Пожалуйста, смотрите в моем ответе ниже

Ответ №2:

После некоторых попыток я получил запрос как

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


SELECT * FROM #temp_table
 

)
вывод


Комментарии:

1. Спасибо @david-browne-microsoft, но я хотел вставить их в таблицу. Я получил запрос после нескольких попыток. Пожалуйста, смотрите в моем ответе ниже

Ответ №2:

После некоторых попыток я получил запрос как