Sql server SQL Server XML数据类型的差异?
我有一个自动过程,将XML文档插入SQLServer2008表中,该列的类型为XML。有很多重复的数据,我想知道是否有人可以推荐一种基于XML列删除非不同值的好方法?该表有数千行,每个XML文档约为70k 除一个元素值外,每个XML文档看起来都相同,例如: 第1行,C列:Sql server SQL Server XML数据类型的差异?,sql-server,xml,indexing,Sql Server,Xml,Indexing,我有一个自动过程,将XML文档插入SQLServer2008表中,该列的类型为XML。有很多重复的数据,我想知道是否有人可以推荐一种基于XML列删除非不同值的好方法?该表有数千行,每个XML文档约为70k 除一个元素值外,每个XML文档看起来都相同,例如: 第1行,C列: <?xml version="1.0"?><a><b/><c>2010.09.28T10:10:00</c></a> <?xml version=
<?xml version="1.0"?><a><b/><c>2010.09.28T10:10:00</c></a>
<?xml version="1.0"?><a><b/><c>2010.09.29T10:10:00</c></a>
2010.09.28T10:10:00
第2行C列:
<?xml version="1.0"?><a><b/><c>2010.09.28T10:10:00</c></a>
<?xml version="1.0"?><a><b/><c>2010.09.29T10:10:00</c></a>
2010.09.29T10:10:00
我想假装在忽略这个值时,如果其他的东西都是相等的,那么我想考虑文件是一样的。如果任何其他要素不同,则认为文件不同
谢谢你的所有想法。你能证明“独特的XML”对你来说意味着什么吗?例如,以下两者之间的区别是什么:
2010.09.29T10:10:00
,则可以投影区分字段的元素并在此投影上查询:
with cte_x as (
select xmlcolumn.value(N'(//a/c)[1]', N'DATETIME') as xml_date_a_c,
...
from table
),
cte_rank as (
select row_number() over (partition by xml_date_a_c order by ...) as rn
from cte_x)
delete from cte_rank
where rn > 1;
谢谢你的提问,实际上XML LOB之间有一点不同。我更新了我原来的帖子。谢谢