SQL Server 2005'teSQL Server 2005'te bir xml sütununun en üst düzey özelliğini nasıl seçerim?
<Test foo="bar">
<Otherstuff baz="belch" />
</Test>
eşdeğeri olan bir xml sütunu var. Testin foo özniteliğinin değerini (bir kök öğesi) bir varchar olarak alabilmek istiyorum. Amacım şu satırlar boyunca bir şey olurdu:
select cast('<Test foo="bar"><Otherstuff baz="belch" /></Test>' as xml).value('@foo','varchar(20)') as Foo
Yukarıdaki sorguyu çalıştırdığımda aşağıdaki hatayı alıyorum:
Msg 2390, Level 16, State 1, Line 1 XQuery [value()]: Top-level attribute nodes are not supported
ne kök öğesi nedir bilmiyorsanız .. ??? Bu durumda "Test" olduğunu biliyoruz, ancak başka bir alandaki değere bağlı olarak farklı XML'e sahip bir XML alanım var. Yani veya olabilir ... kullanabileceğimiz bir varsayılan kök öğe adı var .. ??? –
Ads
@Reklam bir joker kullanın, ör. '// Element [@foo]' veya yapı hakkında birşey biliyorsanız '/ */Elements/Element [@foo]' – StuartLC
Sorguyu parens içinde sarın. sheesh; Ben asla tahmin edemezdim. TSQL'de XML sorgulaması harika çalışıyor, ancak sözdizimi çok zor. – dudeNumber4