一个关于sql 自身连接的问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:43:23
一个表有三个字段:班级,姓名,学号
找出同一班级里面同名的学生的姓名跟学号,怎么编写SQl啊

declare @t table(grade varchar(10),name varchar(10), id int)
insert into @t values('08级9班','张三',1)
insert into @t values('08级4班','李四',2)
insert into @t values('08级9班','王五',3)
insert into @t values('08级1班','张三',4)
insert into @t values('08级4班','李四',5)
insert into @t values('08级9班','张三',6)
insert into @t values('08级11班','XXX',7)
insert into @t values('08级9班','aaa',8)
insert into @t values('08级9班','aaa',9)
insert into @t values('08级1班','XXX',10)

select A.* from @t A
join (
select grade,name from @t
group by grade,name having count(name)>1) B on A.grade=B.grade and A.name=B.name
order by 1,2,3

------------------------------------
grade name id
---------- ---------- -----------
08级4班 李四 2
08级4