2

我正在尝试从类似于以下定义的表中选择数据:

Column     |    Data Type
-------------------------
Id         |    Int
DataType   |    Int
LoggedData |    XML

但我只想选择那些具有特定 DataType 值的行,并且在 LoggedData 列中包含一个字符串(或评估一段 XPath)。

快速的谷歌搜索没有任何用处,我有点急于得到答案......我会继续搜索,但如果有人能同时帮助我解决这个问题,我真的欣赏它。

编辑_澄清

所以,我所追求的是这样的,但格式正确......

select Id, LoggedData from myTable where DataType = 29 and LoggedData.query('RootNode/ns1:ChildNode[@value="searchterm"]');

可能还是不太清楚...

4

2 回答 2

1

如果您想按搜索项(如 SQL 变量)进行过滤,您可能需要使用以下内容:

Select Id, LoggedData From myTable Where DataType = 29 And 
LoggedData.exist('RootNode/ns1:ChildNode[@value=sql:variable("@searchterm")]')=1

其中@searchterm 是您的SQL 变量。

于 2008-10-14T03:40:28.443 回答
0

这不是对你有用吗?

SELECT
  Id, 
  LoggedData 
FROM
  myTable 
WHERE
  DataType = 29 
  AND LoggedData.exist('RootNode/ns1:ChildNode[@value="searchterm"]') = 1
于 2008-10-13T09:34:17.543 回答