English 中文(简体)
我如何防止服务器用同一名称压缩XML的结果。
原标题:How do I prevent SQL Server from concatenating XML results with the same name

我试图在2008年利用XML特征制作XML文件,但I m正在成为一个问题,即文件要求两个节点有相同的名称,但服务器自动将任何名称相同的节点聚集在一起。

例如:

<Location>
  <Address>Some Street</Address>
  <Address>Some other info</Address>
</Location>

问题在于我试图通过执行以下文件:

<Location>
  <Address>Some StreetSome other info</Address>
</Location>

这里,我如何选择数据:

 SELECT CustomerStreet1 AS  location/address ,
        CustomerStreet2 AS  location/address 
   FROM Customers
FOR XML PATH( Customer )

在两个地址领域之间选择另一个标的,但我期望我能够把两个地址的节点放在一起。

最佳回答
WITH    customers (id, CustomerStreet1, CustomerStreet2) AS
        (
        SELECT  1,  Some Street ,  Some other info 
        UNION ALL
        SELECT  2,  Second Street , NULL
        )
SELECT  id,
        (
        SELECT  *
        FROM    (
                SELECT  CustomerStreet1 AS Address
                UNION ALL
                SELECT  CustomerStreet2
                ) q
        FOR XML PATH(  ), TYPE
        )
FROM    customers 
FOR XML PATH( Customers )
问题回答

暂无回答




相关问题
How to write this T-SQL WHERE condition?

I ve got two tables: TableA Col1 Col2 TableB Col3 Col4 I want to join them together: SELECT * from TableA join TableB ON (...) Now, in place of ... I need to write an expression ...

Customer and Order Sql Statement

TSQL query to select all records from Customer that has an Order and also select all records from customer that does not have an Order. The table Customer contains a primary key of CustomerID. The ...

Recommended way of querying multiple Versioned tables

Have a win 2003 box with MSSQL 2005 running on it. There is a database which is populated every morning with new/modified SalesOrder made the previous day. The database has several tables: SalesOrder, ...

update duplicate record

I have a table with the following fields Id Name IsPublic i need to write a sql query that updates IsPublic to false where name has a duplicate. Only one of the duplicates should have IsPublic = ...

Define variable to use with IN operator (T-SQL)

I have a Transact-SQL query that uses the IN operator. Something like this: select * from myTable where myColumn in (1,2,3,4) Is there a way to define a variable to hold the entire list "(1,2,3,4)"? ...

Selecting records during recursive stored procedure

I ve got a content management system that contains a hierarchical structure of categories, with sub-categories subject to different ordering options at each level. Currently, that s retrieved by a (...

热门标签