집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server 2016의 JSON 개체 배열에서 값 배열을 추출하는 방법은 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!