sql 整合成一名

来源:百度知道 编辑:UC知道 时间:2024/09/25 11:32:03
Select id from details order by time desc 按时间降序
select distinct id from details 去除ID重复
select top 10 id from details 取十条记录
整句意思是取最后十条不重复的记录
高手再加五分.
功能都没能够实现
表结构:
id  作者 内容 时间
1  A  aa  00:01:02
2  B  bb  00:01:03
3  C  cc  00:01:04
5  D  dd  00:01:05
1  E  EE  00:01:06
2  F  ff  00:01:07
结果:删除ID重复,按时间排序,结果
id 作者  内容  时间
2    F  ff  00:01:07
1  E  EE  00:01:06
5  D  dd  00:01:05
3  C  cc  00:01:04
定义主键和唯一约束怎么弄,存储过程又怎么弄,请简单说明一下,看你这么辛苦,再加五分吧
不重复就是把重复的ID去掉

----------------
--先创建存储过程
----------------
CREATE PROCEDURE 删除重复ID
AS
select *
into #t
from 表名
where 1=2

declare @id int
declare @作者 varchar(200)
declare @内容 varchar(200)
declare @时间 datetime

declare idcursor cursor for
select [id],作者,内容,时间 from 表名
open idcursor
fetch next from idcursor into @id,@作者,@内容,@时间

while @@FETCH_STATUS = 0
begin
declare @old时间 datetime
select @old时间=时间 from #t where [id]=@id
if @old时间 is null
begin
insert into #t values(@id,@作者,@内容,@时间)
end
else if @old时间<@时间
begin
update #t set 作者=@作者,内容=@内容,时间=@时间 where [id]=@id
end

fetch next from idcursor into @id,@作者,@内容,@时间
end
CLOSE idcursor
DEALLOCATE idcursor

select * from #t order by 时间 desc

drop table #t

go
----------
--然后执行
----------

exec 删除重复ID