2009-06-16 41 views
0

我希望收到我的迴應的XML格式如下...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> 

我有2個不同的SELECT語句在這裏......這裏

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 – 2009-06-16 08:19:01

回答

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 2009-06-16 10:14:16