2008-10-13 72 views
2

我试图从表中的数据定义类似于下面来选择特定的行:选择与SQL Server XML列类型

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

但我只想要选取特定的数据类型值的那些行,在LoggedData列中包含一个字符串(或者评估一段XPath)。

一个快速的谷歌搜索没有什么用处,我有点急于得到答案......我会继续搜索,但如果任何人都可以帮助我在此同时,我真的很感激它。

编辑 _澄清

那么,什么我是后这样的事情,但在正确的格式...

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

可能仍然不是很清楚......

回答

1

如果你想通过一个搜索关键词(如SQL变量)来过滤你可能会需要使用这样的事情:

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

其中@searchterm是你的SQL变量。

0

这难道不适合你吗?

SELECT 
    Id, 
    LoggedData 
FROM 
    myTable 
WHERE 
    DataType = 29 
    AND LoggedData.exist('RootNode/ns1:ChildNode[@value="searchterm"]') = 1 
+0

澄清,我希望。 :) – ZombieSheep 2008-10-13 11:27:11