【发布时间】:2015-12-24 06:52:53
【问题描述】:
是的,您可以多次找到类似的问题,但是: 此处发布的最优雅的解决方案适用于 SQL Server,但不适用于 Sybase(在我的情况下为 Sybase Anywhere 11)。我什至发现一些与 Sybase 相关的问题被标记为 SQL Server 问题的重复,这没有帮助。
我喜欢但不起作用的解决方案的一个示例是 WITH ... DELETE ... 构造。
我找到了使用游标或 while 循环的可行解决方案,但我希望不使用循环也是可能的。
我希望有一个漂亮、简单和快速的查询,只删除一个完全相同的重复项。
这里有一个用于测试的小框架:
IF OBJECT_ID( 'tempdb..#TestTable' ) IS NOT NULL
DROP TABLE #TestTable;
CREATE TABLE #TestTable (Column1 varchar(1), Column2 int);
INSERT INTO #TestTable VALUES ('A', 1);
INSERT INTO #TestTable VALUES ('A', 1); -- duplicate
INSERT INTO #TestTable VALUES ('A', 1); -- duplicate
INSERT INTO #TestTable VALUES ('A', 2);
INSERT INTO #TestTable VALUES ('B', 1);
INSERT INTO #TestTable VALUES ('B', 2);
INSERT INTO #TestTable VALUES ('B', 2); -- duplicate
INSERT INTO #TestTable VALUES ('C', 1);
INSERT INTO #TestTable VALUES ('C', 2);
SELECT * FROM #TestTable ORDER BY Column1,Column2;
DELETE <your solution here>
SELECT * FROM #TestTable ORDER BY Column1,Column2;
【问题讨论】:
-
嗯。 6200 次观看,但没有人发现我的任何答案有用?
标签: sql sybase duplicate-removal sqlanywhere