2009-06-16 5 views
0

나는 다음과 같은 형식으로 내 응답 XML을 받고 싶은 ... 내가 여기에 2 개의 다른 선택 문이SQL - 포맷을 XML 응답 값

<PersonDetails> 
    <Name>Ajay</Name> 
    <Age>29</Age> 
    <ContactDetails> 
     <ContactDetail> 
      <ContactType>Mobile</ContactType> 
      <ContactValue>9565649556</ContactValue> 
     </ContactDetail> 
     <ContactDetail> 
      <ContactType>Email</ContactType> 
      <ContactValue>[email protected]</ContactValue> 
     </ContactDetail> 
    </ContactDetails> 
</PersonDetails> 

...

SELECT name, age FROM Person_Details 
WHERE id = 12 

SELECT Contact_Type, Contact_Value FROM Person_Contact_Details 
Where id = 12 

어떤 제안 여기. .. FOR XML EXPLICIT/PATH의 조합을 시도했습니다.

+0

당신의 DBMS 무엇입니까? MSSQL? MySQL은? 가능한 복제본 : http://stackoverflow.com/questions/999513/what-is-the-equivalent-of-for-xml-auto-in-mysql-for-having-an-xml-string-that/999531# 999531 –

답변

5

PATH :

SELECT name AS Name 
      , age AS Age 
      , (SELECT Contact_Type AS ContactType 
       , Contact_Value AS ContactValue 
       FROM Person_Contact_Details c 
       WHERE c.id = p.id 
       FOR XML PATH('ContactDetail'), TYPE) AS ContactDetails 
     FROM Person_Details p 
     WHERE id = 12 
     FOR XML PATH('PersonDetails') 
+0

고마워요 ... 이건 내 검색어를 수정했습니다 ... – Vijay