>데이터 베이스 >MySQL 튜토리얼 >SQL 개체 배열을 JSON의 값 배열로 변환하는 방법(SQL Server 2016)?

SQL 개체 배열을 JSON의 값 배열로 변환하는 방법(SQL Server 2016)?

Patricia Arquette
Patricia Arquette원래의
2025-01-09 18:47:41708검색

How to Convert a SQL Array of Objects to an Array of Values in JSON (SQL Server 2016)?

SQL Server 2016 JSON 변환: 개체 배열을 값 배열로

SQL Server 2016은 강력한 JSON 기능을 제공하여 보고 및 통합을 위한 데이터 변환을 단순화합니다. 이 예에서는 객체의 SQL 배열을 JSON 구조 내에서 더 간단한 값 배열로 변환하는 일반적인 요구 사항을 해결합니다.

시나리오:

다음과 같은 데이터가 포함된 테이블 #temp을 생각해 보세요.

#temp 테이블:

| 아이템_ID | |---|---| | 1234 | | 5678 | | 7890 |

목표는 이 데이터를 JSON으로 변환하여 item_id 값을 개체 배열이 아닌 단일 배열로 표시하는 것입니다.

대상 JSON 구조:

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

해결책:

이 효율적인 쿼리는 원하는 변환을 달성합니다.

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

설명:

이 쿼리는 FOR XML PATH('')을 교묘하게 사용하여 따옴표로 묶인 item_id 값의 쉼표로 구분된 문자열을 생성합니다. STUFF 선행 쉼표를 제거합니다. 그런 다음 결과 문자열을 대괄호([])로 묶어 유효한 JSON 배열을 형성하고 JSON_QUERY을 사용하여 구문 분석합니다. 마지막으로 FOR JSON PATH, WITHOUT_ARRAY_WRAPPER는 출력 형식을 원하는 JSON 개체로 지정합니다.

출력:

쿼리를 실행하면 대상 JSON 구조가 생성됩니다.

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

이 방법은 SQL Server 2016 내에서 JSON 배열 변환을 관리하는 간결하고 효과적인 방법을 제공합니다.

위 내용은 SQL 개체 배열을 JSON의 값 배열로 변환하는 방법(SQL Server 2016)?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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