PATH 모드를 사용하여 중첩된 JSON 출력 서식 지정(SQL Server)
적용 대상: SQL Server 2016(13.x) 이상 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics(서버리스 SQL 풀에만 해당)
기본 FOR JSON 절의 출력을 완전히 제어하려면 PATH 옵션을 지정합니다.
PATH 모드를 통해 래퍼 개체를 만들고 복잡한 속성을 중첩할 수 있습니다. 결과는 JSON 개체의 배열로 서식 지정됩니다.
또는 AUTO 옵션을 사용하여 SELECT 문의 구조에 따라 출력의 서식을 자동으로 지정합니다.
- AUTO 옵션에 대한 자세한 내용은 AUTO 모드를 사용하여 JSON 출력 서식을 자동으로 지정하세요.
- 두 옵션에 대한 개요는 FOR JSON을 사용하여 쿼리 결과 서식을 JSON으로 지정합니다.
아래에는 PATH 옵션에서 FOR JSON 절을 사용하는 몇 가지 예가 나와 있습니다. 다음 예제와 같이 점으로 구분된 열 이름을 사용하거나 중첩된 쿼리를 사용하여 중첩된 결과의 서식을 지정합니다. 기본적으로 null 값은 FOR JSON 출력에 포함되지 않습니다. Azure Data Studio는 일반 문자열을 표시하는 대신 이 문서에 표시된 대로 JSON 결과에 서식을 자동으로 지정하므로 JSON 쿼리에 권장되는 쿼리 편집기입니다.
예 - 점으로 구분된 열 이름
다음 쿼리는 AdventureWorks 테이블의 처음 5개 행에 JSON 형식을 지정합니다 Person
.
FOR JSON PATH 절은 열 별칭 또는 열 이름을 사용하여 JSON 출력의 키 이름을 결정합니다. 별칭에 점이 있는 경우 PATH 옵션은 중첩된 개체를 만듭니다.
쿼리
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH
결과
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sanchez",
"Info": {
"MiddleName": "J"
}
}, {
"Id": 2,
"FirstName": "Terri",
"LastName": "Duffy",
"Info": {
"MiddleName": "Lee"
}
}, {
"Id": 3,
"FirstName": "Roberto",
"LastName": "Tamburello"
}, {
"Id": 4,
"FirstName": "Rob",
"LastName": "Walters"
}, {
"Id": 5,
"FirstName": "Gail",
"LastName": "Erickson",
"Info": {
"Title": "Ms.",
"MiddleName": "A"
}
}]
예 - 여러 테이블
쿼리 에서 둘 이상의 테이블을 참조하는 경우 FOR JSON PATH 는 해당 별칭을 사용하여 각 열을 중첩합니다. 다음 쿼리는 쿼리에 조인된(OrderHeader, OrderDetails) 쌍당 하나의 JSON 개체를 만듭니다.
쿼리
SELECT TOP 2 H.SalesOrderNumber AS 'Order.Number',
H.OrderDate AS 'Order.Date',
D.UnitPrice AS 'Product.Price',
D.OrderQty AS 'Product.Quantity'
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON PATH
결과
[{
"Order": {
"Number": "SO43659",
"Date": "2011-05-31T00:00:00"
},
"Product": {
"Price": 2024.9940,
"Quantity": 1
}
}, {
"Order": {
"Number": "SO43659"
},
"Product": {
"Price": 2024.9940
}
}]
SQL Server 및 Azure SQL Database의 JSON에 대해 자세히 알아보기
Microsoft 비디오
SQL Server 및 Azure SQL Database의 기본 제공 JSON 지원에 대한 시각적 소개는 다음 비디오를 참조하세요.
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기