我遇到了一些棘手的问题。我需要根据几何图形选择SQL空间表中的所有重复项(有些已经复制并粘贴,意识到它们一遍又一遍地粘贴相同的几何图形)。根据几何列选择重复项
我需要选择除几何相同的最低ID以外的所有重复项。
我遇到了一些棘手的问题。我需要根据几何图形选择SQL空间表中的所有重复项(有些已经复制并粘贴,意识到它们一遍又一遍地粘贴相同的几何图形)。根据几何列选择重复项
我需要选择除几何相同的最低ID以外的所有重复项。
这给你所有重复。
WITH C AS(
SELECT ROW_NUMBER() OVER (PARTITION BY CAST(your_geometry_field AS VARBINARY(MAX))
ORDER BY CAST(your_geometry_field AS VARBINARY(MAX)) AS Rn
FROM your_table
)
SELECT * FROM C WHERE Rn != 1
对于你的问题的第一部分:在一个名为“表名”与名为“CenterPoint的” 以下组的中心点按位置,空间点列的表,如果计数大于1,则有重复:
SELECT ID, COUNT(CenterPoint)
FROM TableName
GROUP BY CenterPoint
HAVING COUNT(CenterPoint) > 1
您无法按几何列进行分组,因为它在SQL Server中不具有可比性。 – digz6666 2017-03-27 03:24:22
你可以加入你自己的表格并用STEQUals函数检查。
SELECT tbl1.OBJECTID, tbl2.OBJECTID
FROM your_table tbl1
JOIN yout_table tbl2 ON tbl1.your_geometry_field.STEquals(tbl2.your_geometry_field) = 1
ORDER BY tbl1.OBJECTID
一个缺点是,你得到重复的对像如下:
101 110
101 210
110 101
110 210
210 101
210 110
如果提供表定义和样本数据的问题,我将更新detailes – sqluser 2015-04-01 04:41:44
伟大的答案,我将给出以前..我将在明天发送样本:D – 2015-04-01 06:07:43
由于几何在SQL Server中没有可比性,因此无法工作。 – andyb 2016-03-02 15:21:07