आप इस बारे में कुछ आंतरिक ज्ञान का उपयोग कर सकते हैं कि SQL सर्वर XML श्रेडिंग को कैसे लागू करता है और row_number()
का उपयोग करता है इस तरह।
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)
संदर्भ:DENSE_RANK के साथ XML नोड्स की विशिष्ट रूप से पहचान करना
या आप "इसे सुरक्षित रूप से खेल सकते हैं" और एक संख्या तालिका का उपयोग कर सकते हैं।
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')