>데이터 베이스 >MySQL 튜토리얼 >SQL Server 2016의 JSON 개체 배열에서 값 배열을 추출하는 방법은 무엇입니까?

SQL Server 2016의 JSON 개체 배열에서 값 배열을 추출하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-09 18:41:42874검색

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 기능은 강력하지만 특정 데이터 구조를 추출하려면 창의적인 접근 방식이 필요한 경우가 있습니다. 이 예에서는 객체의 JSON 배열을 더 간단한 값 배열로 변환하는 방법을 보여줍니다.

도전:

객체의 JSON 배열을 생성하는 쿼리를 생각해 보세요.

<code class="language-sql">SELECT (SELECT item_id 
FROM #temp
FOR JSON PATH, root('ids')) </code>

다음과 같은 JSON이 생성됩니다.

<code class="language-json">{
  "ids": [
    {"item_id": "1234"},
    {"item_id": "5678"},
    {"item_id": "7890"}
  ]
}</code>

목표는 item_id 값만 포함하는 JSON 배열로 재구성하는 것입니다.

<code class="language-json">{
  "ids": [
    "1234",
    "5678",
    "7890"
  ]
}</code>

해결책:

핵심은 XML을 중개자로 활용하는 2단계 프로세스입니다.

<code class="language-sql">SELECT  
JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + item_id + '"' 
FROM #temp FOR XML PATH('')),1,1,'') + ']' ) ids  
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER </code>

이 코드는 먼저 FOR XML PATH('')를 사용하여 item_id 값을 큰따옴표로 묶어 연결합니다. STUFF 선행 쉼표를 제거합니다. 그런 다음 결과를 대괄호로 묶어 JSON_QUERY 구문 분석하는 유효한 JSON 배열을 만듭니다. 마지막으로 FOR JSON PATH, WITHOUT_ARRAY_WRAPPER은 출력 형식을 간단한 JSON 배열로 지정합니다. 이렇게 하면 원본 JSON 개체 배열을 원하는 값 배열로 효과적으로 평면화할 수 있습니다.

위 내용은 SQL Server 2016의 JSON 개체 배열에서 값 배열을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.