我在 sql 列中有以下(減少)xml
<Values>
<Value>
<N>Test</N>
<V>FindMe</V>
</Value>
<Value>
<N>Test</N>
<V>NotMe</V>
</Value>
<Value>
<N>Other Value</N>
<V>NotMe</V>
</Value>
</Values>
我正在嘗試獲取 的值V,緊隨第N一個值為Test
我嘗試過使用following-sibling,但顯然在 XPATH Sql Server 2008 使用的任何版本中都不支持。
根據Gunther 在此處的回答,我得出了以下查詢:
/Values/Value/V[. >> /Values/Value/N[. = 'Test'][1]][1]
在線嘗試時回傳多行,但在以下 SQL 中嘗試時
SELECT
A.x,
A.x.query('/Values/Value/V[. >> /Values/Value/N[. = ''Test''][1]][1]')
FROM (SELECT CAST('<Values><Value><N>Test</N><V>FindMe</V></Value><Value><N>Other Value</N><V>NotMe</V></Value></Values>' AS XML) x) A
有以下錯誤
XQuery [A.x.query()]: '>>' requires a singleton (or empty sequence), found operand of type 'element(N,xdt:untyped) *'
我在查詢中嘗試了以下變體,但都有相同的錯誤
/Values/Value/V[. >> /Values/Value/N[. = 'Test'][1]][1]
/Values/Value/V[. >> /Values/Value[N = 'Test'][1]][1]
/Values/Value/V[. >> /Values/Value[N = 'Test']/N[1]][1]
uj5u.com熱心網友回復:
這應該這樣做。
/Values/Value[N='Test'][1]/V
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/512145.html
上一篇:按字母順序將表列排序為行
