sql server - Xml Shredding .Value Singleton -


i querying xml column in sql server 2012.

when moving path .value method results not returning element instances!

,c.value('(*/*/visitors/visitor/@name)[1]', 'nvarchar(50)') visitor ,c.value('(*/*/senders/sender/@name)[1]', 'nvarchar(50)') sender 

i using nodes method, wildcard killing performance

cross apply c.nodes('*') dd(d)  outer apply d.nodes(visitors/visitor) ee(e) outer apply d.nodes('senders/sender') ff(f) 

now know can correct results (below) there way return element results using path in .value method without declaring 3 singletons, or .nodes method way of returning multiple element instances?

thanks!

,c.value('(*/*/visitors/visitor/@name)[1]', 'nvarchar(50)') visitor ,c.value('(*/*/visitors/visitor/@name)[2]', 'nvarchar(50)') visitor2 ,c.value('(*/*/visitors/visitor/@name)[3]', 'nvarchar(50)') visitor3      ,c.value('(*/*/senders/sender/@name)[1]', 'nvarchar(50)') sender ,c.value('(*/*/senders/sender/@name)[2]', 'nvarchar(50)') sender2     ,c.value('(*/*/senders/sender/@name)[3]', 'nvarchar(50)') sender3 

the call .value() return single value definition.

if need enumerate list of nodes, use .nodes() - that's it's there for.

but please avoid using .nodes(*) - that's killer performance - need specific xpath in .nodes() call


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

java - Using an Integer ArrayList in Android -