在sql server中选择重复列

时间:2015-03-05 11:17:11

标签: sql sql-server

表1

Id    Name
1     xxxxx
1     ccccc
2     uuuuu
3     ddddd

我想选择Id具有相同Id

的多个条目的位置

怎么做?

2 个答案:

答案 0 :(得分:3)

您可以找到包含多个条目的id,然后使用LEFT JOIN / IS NOT NULL模式从原始表中检索相应的数据:

SELECT t1.* 
FROM tbl t1 
LEFT JOIN ( SELECT id 
            FROM tbl 
            GROUP BY id 
            HAVING COUNT(*) > 1) t2 ON t1.id = t2.id 
WHERE t2.id IS NOT NULL

其他可能的解决方案包括使用EXISTSIN条款代替LEFT JOIN / IS NOT NULL

答案 1 :(得分:0)

ranking functions

Y as (
select *, count(*) over (partition by id) counter
from X)
select id, name from Y where counter > 1