2013-03-08 28 views
-1
<Person> 
    <id>12</id> 
    <Fname>Phil</Fname> 
    <Lname></Lname> 
    //or 
    <id>13</id> 
    <Fname>Phil</Fname> 
    <Lname>0</Lname> 
</Person> 

我從SQL Server 2005中使用的XML路徑( '人')空標籤

在這裏,在這個XML結構,而不是

<Lname></Lname><Lname>0</Lname>我需要生成XML爲<Lname/>

+1

請提供更多的細節在圖書館和語言的使用。 – 2013-03-08 07:37:12

+0

從XML的角度來看,''和''都是空標記並且是等效的。所以如果沒有辦法指定數據庫應該如何創建空標籤,我不會感到驚訝。 – 2013-03-08 07:39:14

+0

select * from table_name for xml path('Person') – Bharath 2013-03-08 07:39:33

回答

0

使用XML數據類型時,將空標記轉換爲EmptyElemTag。直接使用for xml不會那樣做。

要獲得想要的結果,您可以在另一個for xml path查詢的字段列表中將您的查詢用作子查詢。

select (
     select id, 
       Fname, 
       Lname 
     from Person 
     for xml path('Person'), type 
     ) 
for xml path('') 

SQL Fiddle

+0

插入Person值(13,'Phil',NULL); – Bharath 2013-03-08 08:46:57

+0

當列中有空值而不是0或''時,這個概念不起作用。我是否需要返回並在所有列中使用ISNULL概念 – Bharath 2013-03-08 08:47:19

+0

@Bharath當值爲'null'時,您想要輸出什麼? – 2013-03-08 09:07:32