결과내용은 처음에 단일 행과 단일 열에 다음과 같이 하나의 긴 행으로 나타날 수 있습니다.
Example 2 – 여러 테이블 조인 구문쿼리
이 예에서는 일대 다관계가 있는 두 테이블을 쿼리합니다.이 경우 각 아티스트는 많은 앨범을 가질 수 있습니다.
USE Music;
SELECT
ArtistName,
AlbumName
FROM Artists
INNER JOIN Albums
ON Artists.ArtistId = Albums.ArtistId
ORDER BY ArtistName
FOR JSON AUTO;
결과
[
{
"ArtistName": "AC/DC",
"Albums": [
{
"AlbumName": "Powerage"
}
]
},
{
"ArtistName": "Allan Holdsworth",
"Albums": [
{
"AlbumName": "All Night Wrong"
},
{
"AlbumName": "The Sixteen Men of Tain"
}
]
},
{
"ArtistName": "Buddy Rich",
"Albums": [
{
"AlbumName": "Big Swing Face"
}
]
},
{
"ArtistName": "Devin Townsend",
"Albums": [
{
"AlbumName": "Ziltoid the Omniscient"
},
{
"AlbumName": "Casualties of Cool"
},
{
"AlbumName": "Epicloud"
}
]
},
{
"ArtistName": "Iron Maiden",
"Albums": [
{
"AlbumName": "Powerslave"
},
{
"AlbumName": "Somewhere in Time"
},
{
"AlbumName": "Piece of Mind"
},
{
"AlbumName": "Killers"
},
{
"AlbumName": "No Prayer for the Dying"
}
]
},
{
"ArtistName": "Jim Reeves",
"Albums": [
{
"AlbumName": "Singing Down the Lane"
}
]
},
{
"ArtistName": "Michael Learns to Rock",
"Albums": [
{
"AlbumName": "Blue Night"
},
{
"AlbumName": "Eternity"
},
{
"AlbumName": "Scandinavia"
}
]
},
{
"ArtistName": "The Script",
"Albums": [
{
"AlbumName": "No Sound Without Silence"
}
]
},
{
"ArtistName": "Tom Jones",
"Albums": [
{
"AlbumName": "Long Lost Suitcase"
},
{
"AlbumName": "Praise and Blame"
},
{
"AlbumName": "Along Came Jones"
}
]
}
]
보시다시피, 각 album은 “Albums” 아래에 중첩되어 있습니다.AUTO 옵션이SELECT 목록의 컬럼 순서와 테이블을기반으로 출력을 결정하기 때문입니다
Example 3 – 하나의 Root Node 추가하기
이ROOT() 옵션을사용하여루트 노드를 출력에 추가할 수 있습니다.이렇게하면 단일 최상위 요소가 출력에 추가됩니다.이렇게 하려면ROOT() 루트 노드에 원하는 이름으로 쿼리 끝에 옵션을추가하면됩니다.
따라서 이전 예제를 다음과 같이 수정할 수 있습니다.
USE Music;
SELECT TOP 3
ArtistName,
AlbumName
FROM Artists
INNER JOIN Albums
ON Artists.ArtistId = Albums.ArtistId
ORDER BY ArtistName
FOR JSON AUTO, ROOT('Music');
결과
{
"Music": [
{
"ArtistName": "AC/DC",
"Albums": [
{
"AlbumName": "Powerage"
}
]
},
{
"ArtistName": "Allan Holdsworth",
"Albums": [
{
"AlbumName": "All Night Wrong"
},
{
"AlbumName": "The Sixteen Men of Tain"
}
]
}
]
}
Example 4 – Array Wrapper 제거하기
WITHOUT_ARRAY_WRAPPER옵션을사용하여 결과를 둘러싸는 대괄호 [] 를 제거할 수 있습니다.
예제
USE Music;
SELECT TOP 1
AlbumName,
ReleaseDate
FROM Albums
FOR JSON AUTO, WITHOUT_ARRAY_WRAPPER;