我查看了一下,但無法找到能幫助我解決問題的答案。 (最有可能是由於我的技能很差)使用XMLNAMESPACES搜索特定值時遇到問題
但是希望有人能夠指引我朝着正確的方向前進。
問題: 我在查詢表中有一個XML列,我需要查詢返回具有特定值的所有行的行。
從XML列的一個例子
<EventD xmlns="http://example1" xmlns:e3q1="http://example2" xmlns:xsi="http://example3" xsi:type="e3q1:Valuechange">
<e3q1:NewValue>Running</e3q1:NewValue>
<e3q1:OldValue>Stopped</e3q1:OldValue>
</EventD>
什麼,我需要做的就是去返回「的NewValue」的所有行的「暗戰」
;WITH XMLNAMESPACES ('example2' as e3q1)
select top 100
Xml.value('(EventD/NewValue)[1]', 'varchar(100)'),
* from Table1
and Xml.value('(EventD/NewValue)[1]', 'varchar(100)') like 'Running'
然而,這似乎並沒有不返回任何行,如果有人能指出我在這裏做錯了什麼,我會很感激。
由於提前,
這是SQL Server不是MySQL。兩個非常不同的產品 – gbn
1)名稱空間名稱是'http:// example2',而不是'example2'; 2)你不在你的查詢中指定*任何名字空間。使用'e3q1:NewValue',併爲'http:// example1'聲明另一個名稱空間,以便您可以限定'EventD'。 –