아하 로고
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
탈퇴한 사용자
탈퇴한 사용자19.05.11

mssql에서 xml형식으로 바로 보여질수있나요??

말그대로 mssql에서 쿼리로 xml형식으로 보여질수있나요??

기본적으로 쿼리결과는

이름

홍길동

나문희

정일상

이런식으로 나오는걸 xml형식으로 나오길 원해요 알려주세요!

55글자 더 채워주세요.
답변의 개수1개의 답변이 있어요!
  • 안녕하세요??

    mssql에서 xml형식으로 쿼리 결과값을 원하시는데

    다양한 방법이 있기때문에 예제로 보여드리겠습니다.

    1. for xml path

    간단히 말하자면 쿼리 결과를 xml형식으로 반환해주는 것을 말한다.


    ex) member 테이블

    zip name

    서울 홍길동

    서울 춘향이

    부산 대박이

    부산 쪽박이


    SELECT zip '@zip', name '@name' FROM member for xml path('member')

    결과

    <member zip="서울" name="홍길동"/>

    <member zip="서울" name="춘향이"/>

    <member zip="부산" name="대박이"/>

    <member zip="부산" name="쪽박이"/>

    각 필드별로 이름을 지정하게되면 member 요소의 속성으로 들어가는 것을 알 수 있습니다.


    SELECT zip, name FROM member for xml path('member')

    결과

    <member><zip>서울</zip><name>홍길동</name></member>

    <member><zip>서울</zip><name>춘향이</name></member>

    <member><zip>부산</zip><name>대박이</name></member>

    <member><zip>부산</zip><name>쪽박이</name></member>

    필드별로 이름을 지정을 안하게되면 member라는 요소에 inline이 아닌 하위요소로 들어가는 것을 알 수 있습니다.


    SELECT zip, name FROM member for xml path('')

    결과

    <zip>서울</zip><name>홍길동</name>

    <zip>서울</zip><name>춘향이</name>

    <zip>부산</zip><name>대박이</name>

    <zip>부산</zip><name>쪽박이</name>

    만약 path 이름을 지정하지 않게되면 레코드 요소이름이 빠져있는 것을 알 수 있습니다.

    그래서 다중 레코드 문자열을 합칠때도 path 이름을 지정하지 않고 임의로 문자열을 앞에다 붙여서 xml형태로 나오지 않게 됩니다.


    SELECT zip, name FROM member for xml path

    결과

    <row><zip>서울</zip><name>홍길동</name></row>

    <row><zip>서울</zip><name>춘향이</name></row>

    <row><zip>부산</zip><name>대박이</name></row>

    <row><zip>부산</zip><name>쪽박이</name></row>

    path 이름을 지정하는 것을 아예 빼버리게되면 임의적으로 row라는 요소안에 만들어집니다.

    이 위 방법중에 원하시는 형식을 골라 쓰시면 될꺼같습니다^^