«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как извлечь значения массивов из массивов объектов JSON в SQL Server 2016?

Как извлечь значения массивов из массивов объектов JSON в SQL Server 2016?

Опубликовано в 2025-04-18
Просматривать:560

How to Extract an Array of Values from an Array of JSON Objects in SQL Server 2016?

SQL Server 2016: преобразование массивов объектов JSON в массивы значений

]

SQL Server 2016 Возможности JSON 2016 являются надежными, но извлечение конкретных структур данных иногда требует творческих подходов. Этот пример демонстрирует преобразование массива объектов JSON в более простой массив значений.

]

The Challenge:

рассмотрим запрос, который генерирует массив JSON объектов:

]
SELECT (SELECT item_id 
FROM #temp
FOR JSON PATH, root('ids')) 
это дает json как это:

]

{
  "ids": [
    {"item_id": "1234"},
    {"item_id": "5678"},
    {"item_id": "7890"}
  ]
}
Цель состоит в том, чтобы реструктурировать это в массив JSON, содержащий только

item_id значения: ]

{
  "ids": [
    "1234",
    "5678",
    "7890"
  ]
}

решение:

ключ-это двухэтапный процесс, использующий XML в качестве посредника:

SELECT  
JSON_QUERY('['   STUFF(( SELECT ','   '"'   item_id   '"' 
FROM #temp FOR XML PATH('')),1,1,'')   ']' ) ids  
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER 
Этот код сначала использует

для xml path ('') для объединения значений item_id , окружая каждый с двойными кавычками. материал удаляет ведущую запятую. Затем результат завершается в квадратные скобки, чтобы создать действительный массив JSON, который json_query анализируется. Наконец, для пути json, без_аррейки_WRAPPER форматирует вывод как простой массив JSON. Это эффективно выравнивает оригинальный массив объектов JSON в нужный массив значений. ]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3