我正在使用ASP.NET C#
上的应用程序我想查看网格视图控件中的所有重复记录。
我通常使用“SqlDataSource”控件。
请注意,我不希望有一两个常见的行,我试图找到除(PK)之外的所有行相同的行。
我希望你理解这个问题。谢谢(如果您需要任何其他信息请咨询我。
答案 0 :(得分:2)
在SQL中,最简单的方法是:
select column1, column2, ... /* all columns except ID */
from myTable
group by column1, column2, ... /* all columns except ID */
having count(*) > 1
答案 1 :(得分:2)
SELECT column1, column2, column3, column4, COUNT(1)
FROM yourtable
GROUP BY column1, column2, column3, column4
HAVING COUNT(1) > 1
答案 2 :(得分:1)
select
col1,
col2,
col3
from
(
select
col1,
col2,
col3,
row_number() over(partition by Col1, Col2, Col3, ColN order by Col3) rownum
from yourTable
)a
where rownum > 1
这使用ROW_NUMBER()
函数,该函数根据重复(partition by
子句中的列)对记录进行排名。然后选择所有重复的行。
如果没有看到确切的表格结构,这个通用的答案就像我给出的那样具体。
答案 3 :(得分:1)
您可以在SQL查询中对记录进行分组和计数:
select col1, col2, col3, count(1)
from table
group by col1, col2, col3
having count(1) > 1
答案 4 :(得分:1)
有几种方法可以做到这一点,这是另一种方法:
SELECT t1.*
FROM MyTable t1
INNER JOIN MyTable t2
ON t1.field1 = t2.field1 AND t1.field2 = t2.field2 AND t1.field3 = t2.field3 ... etc ...
WHERE t1.PKID <> t2.PKID
答案 5 :(得分:0)
谢谢大家的帮助,这就是我要找的......
select ProductID, Date, Category, COUNT(*)from Table1GROUP BY ProductID, Date, Category HAVING COUNT(*) > 1 -- gets only rows with more than 1 grouping