我有一个表用户(id,first_name,last_name,...)我想在该表中找到重复的用户(具有相同first_name和相同last_name的用户).
让我们说我的数据是:
1;bill;campton
2;sarah;connor
3;bill;campton
Run Code Online (Sandbox Code Playgroud)
我需要得到
1;bill;campton;3;bill;campton
Run Code Online (Sandbox Code Playgroud)
我不想得到
1;bill;campton;3;bill;campton
3;bill;campton;1;bill;campton
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?我使用SQL Server 2005
谢谢
SQL*_*ace 12
单程
select first_name, last_name
from table
group by first_name, last_name
having count(*) > 1
Run Code Online (Sandbox Code Playgroud)
如果您还想要ID,那么您可以这样做
SELECT t1.*
FROM table t1
join
(select first_name, last_name
from table
group by first_name, last_name
having count(*) > 1) x ON t1.last_name = x.last_name
AND t1.first_name = x.first_name
Run Code Online (Sandbox Code Playgroud)
你可以使用:
select u1.id, u2.id, u1.first_name, u1.last_name
from users u1
inner join users u2
on u1.first_name = u2.first_name
and u1.last_name = u2.last_name
where u2.id > u1.id
Run Code Online (Sandbox Code Playgroud)
或者,要获得6行,请使用
select u1.id, u1.first_name, u1.last_name, u2.id, u2.first_name, u2.last_name
Run Code Online (Sandbox Code Playgroud)
等等
| 归档时间: |
|
| 查看次数: |
13324 次 |
| 最近记录: |