2009-06-16 7 views
0

Je souhaite recevoir ma réponse XML au format suivant ...SQL - Mise en forme valeur de réponse 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> 

J'ai 2 différentes instructions select ici ...

SELECT name, age FROM Person_Details 
WHERE id = 12 

SELECT Contact_Type, Contact_Value FROM Person_Contact_Details 
Where id = 12 

Toute suggestion ici. ..J'ai essayé avec des combinaisons de FOR XML EXPLICIT/PATH.

+0

quel est votre SGBD? MSSQL? MySQL? Duplication possible: http://stackoverflow.com/questions/999513/what-is-the-equivalent-of-for-xml-auto-in-mysql-for-having-an-xml-string-that/999531# 999531 –

Répondre

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

Merci beaucoup ... Cela a corrigé ma requête ... – Vijay