因此,在此表中的所有行中,我认为可能有两行对于给定字段具有相同的值。有没有办法确定是哪两行?
另外,我不知道价值是多少。
如果您想知道给定列中哪些行具有相同的值,那么您可以使用以下命令找到重复的列
SELECT ColumnName, COUNT(*)
FROM TableName
GROUP BY ColumnName
HAVING COUNT(*) > 1
这将向您显示重复的值。
如果您想知道行(而不是值),我会推荐窗口函数:
select t.*
from (select t.*, count(*) over (partition by col) as cnt
from mytable t
) t
where cnt > 1;
这将返回实际的行,以及用于计数的附加列。
我更喜欢 Gordon 的回答,但另一种解决方法是:
SELECT T1.*, T2.ColCnt
FROM Tab T1
INNER JOIN (SELECT Col, Count(*) AS ColCnt
FROM Tab T GROUP BY Col
HAVING Count(*) > 1) T2
ON T1.Col = T2.Col
尝试类似:
SELECT * FROM Table1 AS Table INNER JOIN Table1 ON Table.ColumnToCompare=Table1.ColumnToCompare
如果两个“ColumnToCompare”具有相同的类型,这应该返回具有相同值的行。
select count(*),Col1 From Table1 group by Col1 Having count(*)>1
select ColumnToCompare, count(ColumnToCompare)
from table
where count(ColumnToCompare) > 1