SQL查找违反唯一索引的行
我想在一个表中的两列(或更多列)上放置唯一索引,但我得到了“找到重复键”。如何选择导致重复的行?您可以使用SQL查找违反唯一索引的行,sql,oracle11g,Sql,Oracle11g,我想在一个表中的两列(或更多列)上放置唯一索引,但我得到了“找到重复键”。如何选择导致重复的行?您可以使用分组依据和拥有来实现此目的: SELECT col1, col2 FROM table GROUP BY col1, col2 HAVING Count(*) > 1 基本上-对值进行分组,然后筛选存在多个值的实例。您可以使用以下方法之一: SELECT t1.rowid FROM this_table t1 WHERE EXISTS (
分组依据和拥有来实现此目的:
SELECT col1,
col2
FROM table
GROUP BY col1,
col2
HAVING Count(*) > 1
基本上-对值进行分组,然后筛选存在多个值的实例。您可以使用以下方法之一:
SELECT t1.rowid
FROM this_table t1
WHERE EXISTS (SELECT '1'
FROM this_table t2
WHERE t2.column_value1 = t1.column_value1
AND t2.column_value2 = t1.column_value2
AND t2.rowid > t1.rowid);
SELECT *
FROM this_table_name a
WHERE a.rowid > ANY (SELECT b.rowid
FROM this_table_name b
WHERE a.col1 = b.col1
AND a.col2 = b.col2);
SELECT my_column,
Count(my_column)
FROM this_table_name
GROUP BY my_column
HAVING Count (my_column) > 1;
+1现在我不必写完我的答案。。。你对我来说太快了:)@CW_Vaidotas接受了他的回答,谢谢他。这也为其他人节省了一些时间,他们不必研究问题+答案+评论,只是为了看看问题已经解决。