日期:2014-05-19  浏览次数:20405 次

求sql 语句的问题(急呀)

1.符合条件的有100条记录,我想删除其中   第9条记录;
2.符合条件的有100条记录,我想删除其中   第10条到第30记录;
3.符合条件的有300条记录,其中标题属性有重复的,我想删除重复的,保留唯一。

------解决方案--------------------
1.符合条件的有100条记录,我想删除其中 第9条记录;
DELETE FROM table1
WHERE (SELECT COUNT(*) FROM table1 a WHERE a.id <=id)=9


2.符合条件的有100条记录,我想删除其中 第10条到第30记录;
DELETE FROM table1
WHERE (SELECT COUNT(*) FROM table1 a WHERE a.id <=id)
BETWEEN 10 AND 30


3.符合条件的有300条记录,其中标题属性有重复的,我想删除重复的,保留唯一。
DELETE FROM table1
WHERE id IN
(SELECT MIN(id) FROM table1 GROUP BY title HAVING COUNT(*)> 1)
------解决方案--------------------
select *,id=identity(int,1,1) into 临时表 from a

id 字段从1开始递增,delete from id = 9
------解决方案--------------------
好晕啊!!!

1.符合条件的有100条记录,我想删除其中 第9条记录;
delete table1 where 唯一列 in (select top 1 唯一列 from (select * from table1 where 符合条件的有100)a where 唯一列 not in
(select top 8 唯一列 from (select * from table1 where 符合条件的有100)b))

2.符合条件的有100条记录,我想删除其中 第10条到第30记录;
delete table1 where 唯一列 in (select top 21 唯一列 from (select * from table1 where 符合条件的有200)a where 唯一列 not in
(select top 9 唯一列 from (select * from table1 where 符合条件的有200)b))

3.符合条件的有300条记录,其中标题属性有重复的,我想删除重复的,保留唯一。
delete table1 where 唯一列 in
(select 唯一列 from (select * from table1 where 符合条件的有300)a
where 唯一列 not in( select max(唯一列) from (select * from table1 where 符合条件的有300)b group by 重复列))
------解决方案--------------------
select id=identity(int,1,1) into # from sysobjects --用临时表测试

delete a from # a where id in(select top 9 id from # )--删除前9条记录
delete from # a where id in(select top 9 id from # order by newid())--删除随机的9条记录
delete a from # a where id in(select top 11 id from # where id not in (select top 19 id from #))--删除20-30
楼主想要什么样的效果?