SqlServer2005中 distinct关键字的使用

来源:百度知道 编辑:UC知道 时间:2024/09/21 20:44:11
select distinct name from student
这是去除表中某个字段的值
但结果只显示目标字段 怎样把其他字段也一起显示出来
希望大家试过成功后再作答! 谢了!!!
使用聚合函数的话就产生了垃圾字段,有没有更好的方法

显示重复记录,还是有重复时只显示一条

如:

--> --> (Roy)生成测试数据

if not object_id('Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2))
Insert #T
select 1,N'A',N'A1' union all
select 2,N'A',N'A2' union all
select 3,N'A',N'A3' union all
select 4,N'B',N'B1' union all
select 5,N'B',N'B2'
Go

--I、Name相同ID最小的记录(推荐用1,2,3),方法3在SQl05时,效率高于1、2
方法1:
Select * from #T a where not exists(select 1 from #T where Name=a.Name and ID<a.ID)

方法2:
select a.* from #T a join (select min(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID

方法3:
select * from #T a where ID=(select min(ID) from #T where Name=a.Name)

方法4:
select a.* from #T a join #T b on a.Name=b.Name and a.ID>=b.ID group by a.ID,a.Name,a.Memo having