在多个条件下在SQL Server中查找重复的行

时间:2014-11-11 07:32:59

标签: sql sql-server

我的字段是

ID | Name | StartTime | EndTime | Date | Description

我正在寻找一种方法来选择除ID之外的所有字段中具有相同条目的所有行。

我对SQL并不熟悉所以我尝试this方法,但只有一个字段不相关(如我的情况)5。

我的第一个想法是尝试类似的事情:

SELECT *
FROM Table
order by Name, Date, StartTime, EndTime, Description

如果我查看所有条目,我至少会找到重复项,但这绝对不是解决问题的最佳方法。

4 个答案:

答案 0 :(得分:1)

此查询应该适合您:

SELECT ID, Name, StartTime, EndTime, Date, Description
FROM (
    SELECT 
        ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID, Name, Date, StartTime, EndTime, Description) AS 'IndexNr'
        , ID
        , Name
        , StartTime
        , EndTime
        , Date
        , Description
    FROM Table) AS ResultSet
WHERE ResultSet.IndexNr > 1

答案 1 :(得分:1)

这应该做你需要的:

select Name, Date, StartTime, EndTime, Description
from   table
group by Name, Date, StartTime, EndTime, Description
having count(*) > 1

答案 2 :(得分:1)

尝试以下查询。

SELECT     Name, Date, StartTime, EndTime, Description
FROM    Table
GROUP BY Name, Date, StartTime, EndTime, Description
HAVING      (COUNT(*) > 1)

答案 3 :(得分:-1)

你可以试试这个: -

SELECT *
FROM TAB_NAME
HAVING COUNT(CONCAT(Name, StartTime, EndTime, Date, Description)) > 1

这将为您提供除ID以外重复的所有行。