查找给定字段具有相同值的行

时间:2013-08-14 16:32:46

标签: sql sql-server tsql

因此,在此表中的所有行中,我认为可能有两行对于给定字段具有相同的值。有没有办法确定它们是哪两行?

另外,我不知道它的价值是什么。

6 个答案:

答案 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