這可能很簡單,我只是沒有正確地使用大括號,但由於我幾乎沒有查詢SQL SERVER XML數據的經驗,所以這使我瘋了。如何在Sql Server 2008中的XML列中使用WHERE屬性
我有一個簡單的表,帶有一個XML類型的列NoSqlField。這包含NULL或
<root version="1.0">
<entry key="mykey">1</entry>
</root>
我想在表中有一個<輸入鍵=「的myKey」 /進入他們NoSqlField列>值的所有行。
A(而不是愚蠢的,因爲它使用的ToString())使用
where h.NoSqlField.ToString().IndexOf("<entry key=\"mykey\">1</entry>") > -1
返回結果LINQ查詢,所以它肯定有。
如何在T-SQL中運行相同的查詢?我已經在各種變化試圖
SELECT * FROM mytable WHERE
NoSqlField.value('(//entry[@key=mykey])[1]','varchar(1)') = '1'
(有和沒有斜槓,完整路徑,...),但從來沒有得到一個返回的行。
它的工作原理(我試過解決方案1,但肯定會研究2號爲好。)!就這樣!正是我在找什麼。非常感謝! – Olaf