gpt4 book ai didi

SQL : Find if XML node exists

转载 作者:行者123 更新时间:2023-12-02 18:56:02 25 4
gpt4 key购买 nike

假设我有一个表数据如下:Sample Table

我想选择包含节点 Name="Hello World" 的所有Value(XML 数据)。我怎样才能实现它?

SQL Fiddle

set @f = @XML.exist('/ArrayOfFilterColumn/SelectColumn[(@Name) eq "Hello World"]');
select @f;

我不确定如何将它添加到我的 where 条件中,所以我把它放在 fiddle 中。

最佳答案

查询表时,跳过 XML 变量的使用并将存在放在 where 子句中。

select F.Value
from XML_FILES as F
where F.Value.exist('/ArrayOfArrayOfSelectColumn/SelectColumn[@Name eq "Hello World"]') = 1

您的列显然是text,因此您需要更改它,因为text已被弃用并且已经有一段时间了。

ntext, text, and image (Transact-SQL)

ntext , text, and image data types will be removed in a future version of Microsoft SQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use them. Use nvarchar(max), varchar(max), and varbinary(max) instead.

就您的情况而言,您当然应该更改为 XML。

直到您修复可以在查询中转换为 XML 的问题为止。

select F.Value
from XML_FILES as F
where cast(F.Value as xml).exist('/ArrayOfArrayOfSelectColumn/SelectColumn[@Name eq "Hello World"]') = 1

关于SQL : Find if XML node exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29026049/

25 4 0
文章推荐: sql-server - SQL Server 中多列非聚集索引中的列顺序重要吗?
文章推荐: facebook - 在
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com