как выдать результат xQuery в одну строку и несколько столбцов

student-uni
Дата: 22.01.2009 12:41:12
Даны ХМЛ данные @xml:
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<DataSets>
    <DataSet >
       <Query>
        <CommandText>Select myField1 From myTable1</CommandText>
      </Query>
    </DataSet>
    <DataSet >
       <Query>
        <CommandText>Select myField2 From myTable2</CommandText>
      </Query>
    </DataSet>
</DataSets>

Необходимо получить значения узлов <CommandText> но не все в одном столбце,
а каждое в отдельном столбце, в одну строку, вот так:
Select myField1 From myTable1   |    Select myField2 From myTable2   

Все же в одном столбце селектируется так:

      EXEC sp_xml_preparedocument @idoc OUT, @xml, '<root xmlns:default="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition"/>'
      print CAST(@idoc as varchar(10))

      SELECT * FROM 
OPENXML(@idoc,'//default:Query',2) -- choise Query as default and give a second node
WITH ([default:CommandText] VARCHAR(50))
      EXEC sp_xml_removedocument @idoc

Результат:

Select myField1 From myTable1      
Select myField2 From myTable2   

как получить значения в одну строку в два столбца ?
Спасибо
Гавриленко Сергей Алексеевич
Дата: 22.01.2009 12:42:46
Топ 10 вопрос 10.
daw
Дата: 22.01.2009 12:53:04

SELECT * FROM
OPENXML(@idoc,'//default:DataSets',2) -- choise Query as default and give a second node
WITH ([CommandText1] VARCHAR(50) 'default:DataSet[1]/default:Query/default:CommandText'
       , [CommandText2] VARCHAR(50) 'default:DataSet[2]/default:Query/default:CommandText'
       )

в общем случае (если вы не знаете, сколько у вас столбцов должно быть в результате)
запрос придется строить динамически.

Posted via ActualForum NNTP Server 1.4