求一句delete的sql语句
有一个表ID是有重复的,我只要删除前面100行的数据,请问这么写没有主键,ID是可以重复的~deletefromtable_1whereidin(selecttop100...
有一个表
ID是有重复的,我只要删除前面100行的数据,请问这么写
没有主键,ID 是可以重复的 ~
delete from table_1 where id in (select top 100 id from table_1)
比如第一行的ID 是5, 101行的ID 也是5,这种写法会把101 行的也删除的啊 ~!!!1
这种写法应该有问题吧 ~!!!!1 展开
ID是有重复的,我只要删除前面100行的数据,请问这么写
没有主键,ID 是可以重复的 ~
delete from table_1 where id in (select top 100 id from table_1)
比如第一行的ID 是5, 101行的ID 也是5,这种写法会把101 行的也删除的啊 ~!!!1
这种写法应该有问题吧 ~!!!!1 展开
10个回答
展开全部
删除你的表中前100的数据,而且又没有主键,有重复的数据时非常麻烦的事情
但并不是没有解决办法,这个涉及到可能需要通过修改表来完成
我的办法是先自己建个临时表例如
select identity(int,1,1)as sid ,table_1.* into temptb from table_1
这时候你就建立了个temptb的临时表
select * from temptb
你回发现多了一列sid的自增长列,这时候你删除数据就可以根据自增长列来删除了!!!
delete from temptb where sid<='100'
这时候删除的数据就是前100的数据了,在怎么做你应该也明白了,就是把temptb取出来,这需要delete 掉你目前的table_1 。
delete table_1
insert table_1 (table_1 的数据列)
select (除了sid列你对应table_1 的数据列) from temptb
这样就构造出了没有主键的拥有重复数据的表 删除 前100条数据的例子
不知道你看懂了没有,一个表没有主键,又拥有重复数据,要删除特定的数据时非常麻烦的,所以建表一定要有主键。
oracle 数据库的话删除前100条记录是非常容易的,以上只针对sqlserver 跟其他的数据库
但并不是没有解决办法,这个涉及到可能需要通过修改表来完成
我的办法是先自己建个临时表例如
select identity(int,1,1)as sid ,table_1.* into temptb from table_1
这时候你就建立了个temptb的临时表
select * from temptb
你回发现多了一列sid的自增长列,这时候你删除数据就可以根据自增长列来删除了!!!
delete from temptb where sid<='100'
这时候删除的数据就是前100的数据了,在怎么做你应该也明白了,就是把temptb取出来,这需要delete 掉你目前的table_1 。
delete table_1
insert table_1 (table_1 的数据列)
select (除了sid列你对应table_1 的数据列) from temptb
这样就构造出了没有主键的拥有重复数据的表 删除 前100条数据的例子
不知道你看懂了没有,一个表没有主键,又拥有重复数据,要删除特定的数据时非常麻烦的,所以建表一定要有主键。
oracle 数据库的话删除前100条记录是非常容易的,以上只针对sqlserver 跟其他的数据库
展开全部
delete from 表 where 主键 in (select top 100 主键 from 表)
主键: 能够唯一表示数据表中的每个记录的【字段】或者【字段】的组合就称为主码(主键)。
主键: 能够唯一表示数据表中的每个记录的【字段】或者【字段】的组合就称为主码(主键)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
oracle数据库中 :
delete from table_1 where rownum < 100
delete from table_1 where rownum < 100
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql的话,备份一下就可以了!
oracle 的话各位提供的方法貌似搞不定!
oracle 的话各位提供的方法貌似搞不定!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delete from table_1 where id in
(select id from table_1
group by id
order by id desc
having rownum<100)
(select id from table_1
group by id
order by id desc
having rownum<100)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询