Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server XML数据类型的差异?_Sql Server_Xml_Indexing - Fatal编程技术网

Sql server SQL Server XML数据类型的差异?

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文档插入SQLServer2008表中,该列的类型为XML。有很多重复的数据,我想知道是否有人可以推荐一种基于XML列删除非不同值的好方法?该表有数千行,每个XML文档约为70k

除一个元素值外,每个XML文档看起来都相同,例如:

第1行,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.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”对你来说意味着什么吗?例如,以下两者之间的区别是什么:

在您看来,有多少“不同的”XML

已更新

如果您的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之间有一点不同。我更新了我原来的帖子。谢谢