SQL Server:检索列中的重复值

时间:2009-10-05 07:15:21

标签: sql sql-server

如何使用SQL语法过滤掉列中的重复值?

感谢。

5 个答案:

答案 0 :(得分:47)

一个常见问题,虽然过滤掉表明您想忽略重复的问题?如果是,请列出唯一值:

SELECT col 
FROM table
GROUP BY col 
HAVING (COUNT(col) =1 )

如果您只想过滤,那么留下重复项

SELECT col, COUNT(col) AS dup_count
FROM table
GROUP BY col
HAVING (COUNT(col) > 1) 

2009年以www.mximize.com/how-to-find-duplicate-values-in-a-table-为基础;网站内容现已消失(2014年)。

答案 1 :(得分:2)

根据您的意思“过滤”,您可以使用DISTINCT,也可以使用GROUP BY来删除或分组重复的条目。

查看链接以获取更多信息。

上面DISTINCT链接的片段:

SELECT DISTINCT od.productid
FROM [order details] OD

SELECT od.productid
FROM [order details] OD
GROUP BY od.productid

这两者通常会产生相同的输出。

答案 2 :(得分:2)

使用 DISTINCT 或GROUP BY **子句。

Select DISTINCT City from TableName

OR

Select City from TableName GROUP BY City

答案 3 :(得分:0)

distinct 将是过滤重复项的关键字。 你可以解释一下你想要达到的目标吗?

答案 4 :(得分:0)

询问以获取重复项列表。这是使用except运算符的简单方法(SQL 2008 +)。

  select [column] from Table1 

    except

  select distinct [column] from Table1; 

或者,您可以使用标准SQL

select [column] from Table1 

where [column} not in 

     (select distinct [column} from Table1);