프로그래밍/DB

[DB] MSSQL 조회결과를 JSON으로 (for json auto)

ss-pro 2021. 9. 10. 23:02
반응형

MSSQL데이터를 JSON으로 테스트 해보는 경우가 있습니다. SELECT 조회결과를 JSON형태로 변환해주는 부분이 있어서해당관련 부분에 대해서 안내드리겠습니다.  MSSQL 2016버전이상에만 지원되며 이하버전은 지원이 안되니 참고하시기 바랍니다. 

1. 테이블 전체 내용을 JSON으로 만들기 

pubs데이터베이스의 titles테이블 SELECT결과입니다. 아래와 같이 전체조회한 결과는 아래 이미지와 같습니다. 

SELECT * FROM titles for json auto  명령문으로 조회결과를 json자료로 만들어 보겠습니다. 아래와 같이 결과값이 나타납니다.  쿼리결과에 보면 json으로 변경된 부분을 알수 있습니다. 해당부분  결과값을 클릭합니다. 

해당결과를 클릭하면 아래와 같이 새쿼리창에 JSON결과값이 나타납니다. 

JSON결과값을 보기좋게하는 https://codebeautify.org/jsonviewer 에 복사해서 보면 아래와 같이 배열형태로 레코드 개수많큼 JSON값으로 변환된것을 알수 있습니다. 

2. 테이블조회시 Alias를 이용하여 JSON결과 만들기 

쿼리결과값을 JSON형태로 만들어 주기때문에 필드명에 Alias를 적용하거나 CASE WHEN문을 사용해서 결과값을 원하는 형태로 맞게 하면 해당결과를 json으로 변경해서 출력됩니다. json으로 데이터를 제공해야되거나 할때 별도 Class를 만들지 않고 쿼리 결과문으로 간단히 데이터를 제공할수 있어서 해당자료로 테스트를 하거나 프로그램상에서 JSON전문 형태로 통신을 해야할때 유용하게 사용할수 있을것 같습니다.

참고) https://docs.microsoft.com/ko-kr/sql/relational-databases/json/format-json-output-automatically-with-auto-mode-sql-server?view=sql-server-ver15