选择具有SQL Server XML列类型的特定行

时间:2008-10-13 09:32:20

标签: sql-server xml tsql select

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

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"]');

仍然可能不太清楚...

2 个答案:

答案 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