2014-05-23 15 views

Antwort

11

können Sie einige interne Kenntnisse über die Verwendung von SQL Server implementiert und XML Schreddern row_number() wie folgt verwenden.

declare @XML xml = 
'<Rows> 
    <Row>Coating</Row> 
    <Row>Drying</Row> 
    <Row>Waxing</Row> 
</Rows>' 

select T.X.value('text()[1]', 'nvarchar(100)') as RowLabel, 
     row_number() over(order by T.X) as RowNumber 
from @XML.nodes('/Rows/Row') as T(X) 

Ref: Uniquely Identifying XML Nodes with DENSE_RANK

Oder Sie können "Nummer sicher" und eine Zahlen-Tabelle verwenden.

select T.X.value('text()[1]', 'nvarchar(100)') as RowLabel, 
     N.Number as RowNumber 
from Numbers as N 
    cross apply @XML.nodes('/Rows/Row[sql:column("N.Number")]') as T(X) 
where N.Number between 1 and @XML.value('count(/Rows/Row)', 'int')