多个记录用order by排序后,如何用SQL语法只保留结果的第一条记录,而删除所有其它记录?(20分)

  • 主题发起人 主题发起人 wyxriver
  • 开始时间 开始时间
W

wyxriver

Unregistered / Unconfirmed
GUEST, unregistred user!
比如说 select b,c from aaa order by b,c 这时会有多个记录出现,我现在想删除这个查询结果里面除第一条记录外的所有其它记录,如何写语法呢?
 
有什么条件可以判断的?<br><br>delete from <br>(select * from aaa order by b,c where * not in(select top 1 * from aaa order by b,c) ) t
 
语句有错的 &nbsp;大概意思这么着 &nbsp;不知道你有什么条件可以判断的
 
针对没有索引ID的表,我认为最好的方法还是使用临时表<br><br>select top 1 * into #temp_table from aaa order by b,c<br>drop table aaa<br>select * into aaa from #temp_table<br>drop table #temp_table<br><br>因为没有唯一索引,not in的条件很不好判断。
 
SELECT TOP 1 * FROM (select b,c from aaa order by b,c)
 
select b,c from aaa where max(b) and max(c)<br>select b,c from aaa where min(b) and min(c)<br>这样行吗?
 
针对没有索引ID的表,我认为最好的方法还是使用临时表<br><br>select top 1 * into #temp_table from aaa order by b,c<br>delete aaa<br>select * into aaa from #temp_table<br>drop table #temp_table<br><br>因为没有唯一索引,not in的条件很不好判断。
 
同意楼上的做法
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
867
DelphiTeacher的专栏
D
D
回复
0
查看
836
DelphiTeacher的专栏
D
D
回复
0
查看
785
DelphiTeacher的专栏
D
后退
顶部