我正在尝试从类似于以下内容的表中选择数据:
Column | Data Type
-------------------------
Id | Int
DataType | Int
LoggedData | XML
但我只想在LoggedData列中选择具有特定DataType值且包含字符串(或评估一段XPath)的行。
一个快速的谷歌搜索没有任何用处,我有点急于得到答案......我会继续搜索,但如果有人可以帮我解决这个问题,我真的很感激。编辑 _澄清
所以,我所追求的是这样的,但格式正确......
select Id, LoggedData from myTable where DataType = 29 and LoggedData.query('RootNode/ns1:ChildNode[@value="searchterm"]');
仍然可能不太清楚...
答案 0 :(得分:1)
如果您想通过 searchterm (如SQL变量)进行过滤,您可能需要使用以下内容:
Select Id, LoggedData From myTable Where DataType = 29 And
LoggedData.exist('RootNode/ns1:ChildNode[@value=sql:variable("@searchterm")]')=1
其中@searchterm是你的SQL变量。
答案 1 :(得分:0)
这不是你的伎俩吗?
SELECT
Id,
LoggedData
FROM
myTable
WHERE
DataType = 29
AND LoggedData.exist('RootNode/ns1:ChildNode[@value="searchterm"]') = 1