2009-06-16 14 views
0

私は次の形式で私の応答XMLを受信したい...私はここに2つの異なるSELECTステートメントを持って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