因此,在此表中的所有行中,我认为可能有两行对于给定字段具有相同的值。有没有办法确定它们是哪两行?
另外,我不知道它的价值是什么。
答案 0 :(得分:4)
如果您想知道哪一行在给定列中具有相同的值,那么您可以使用以下
找到重复的列SELECT ColumnName, COUNT(*)
FROM TableName
GROUP BY ColumnName
HAVING COUNT(*) > 1
这将显示重复的值。
答案 1 :(得分:3)
如果你想知道行(而不是值),我建议使用窗口函数:
select t.*
from (select t.*, count(*) over (partition by col) as cnt
from mytable t
) t
where cnt > 1;
这将返回实际的行,并附加一个计数列。
答案 2 :(得分:0)
尝试类似:
SELECT * FROM Table1 AS Table INNER JOIN Table1 ON Table.ColumnToCompare=Table1.ColumnToCompare
如果两个“ColumnToCompare”具有相同的类型,则应该返回具有相同值的行。
答案 3 :(得分:0)
select count(*),Col1 From Table1 group by Col1 Having count(*)>1
答案 4 :(得分:0)
select ColumnToCompare, count(ColumnToCompare)
from table
where count(ColumnToCompare) > 1
答案 5 :(得分:0)
我更喜欢戈登的答案,但另一种解决方法是:
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