PATH 모드로 중첩 JSON 출력 서식 지정(SQL Server)
적용 대상: SQL Server 2016(13.x) 이상 Azure SQL 데이터베이스 Azure SQL Managed Instance Azure 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 Person
테이블의 처음 5개 행에 JSON 형식을 지정합니다.
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 데이터베이스에서의 JSON에 대해 알아보기
Microsoft 비디오
SQL Server 및 Azure SQL 데이터베이스에서 기본 제공 JSON 지원에 대한 시각적 소개는 다음 비디오를 참조하세요.