Gun*_*.IO 6 sql t-sql sql-server sqlxml
假设我有一个表格数据如下:
我想选择Value包含该节点的所有(XML数据)Name="Hello World".我怎样才能实现它?
set @f = @XML.exist('/ArrayOfFilterColumn/SelectColumn[(@Name) eq "Hello World"]');
select @f;
Run Code Online (Sandbox Code Playgroud)
我不知道怎么能把它添加到我的地方,所以我把它放在一个小提琴里.
跳过XML变量的使用,并在查询表时将exists放在where子句中.
select F.Value
from XML_FILES as F
where F.Value.exist('/ArrayOfArrayOfSelectColumn/SelectColumn[@Name eq "Hello World"]') = 1
Run Code Online (Sandbox Code Playgroud)
您的专栏显然text是因为您需要更改它,因为text已弃用且已经有一段时间了.
ntext,text和image(Transact-SQL)
将来的Microsoft SQL Server版本中将删除ntext,text和image数据类型.避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序.请改用nvarchar(max),varchar(max)和varbinary(max).
在您的情况下,您当然应该更改为XML.
在您修复之前,您可以在查询中强制转换为XML.
select F.Value
from XML_FILES as F
where cast(F.Value as xml).exist('/ArrayOfArrayOfSelectColumn/SelectColumn[@Name eq "Hello World"]') = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16692 次 |
| 最近记录: |