请选择 进入手机版 | 继续访问电脑版

[MsSql] sql server删除前1000行数据的方法实例

  [复制链接]
查看329 | 回复80 | 2021-9-17 12:18:55 | 显示全部楼层 |阅读模式

克日 ,sql数据库入门学习群有朋侪 问到,使用 sql怎样 删除表格的前1000行数据,是否可以实现?

假如 是oracle数据库管理软件,实现起来相对简单多了

  1. delete from 表名 where rownum<=1000;
复制代码

那sql server数据库管理软件呢?

sql server里没有rownum功能,小编尝试用select top

先查询看下效果 集,select * from 表名;

sql server删除前1000行数据的方法实例

  1. delete from 表名
  2. where 条码
  3. in (select top 10 条码 from 表名)
复制代码

--解释 :由于数据量有限,测试删除前10行数据

假如 如许 处分析 出题目 ,为什么呢?假如 条件是in ,那只能是删除前10条记录内里 的条码范围,如许 会造成误删除表中全部 的该条码记录,以是 此方法行不通。

那能不能类似 像oracle那样排序呢?sql server 用row_number()函数

row_number()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其一连 的编号

必须和over一起使用

语法如下:

  1. select *,ROW_NUMBER() over(order by productid) as num from product_test;
复制代码

语句如下:

  1. select ROW_NUMBER() over (order by 日期) as num ,* from 表名
复制代码

输出效果 如下:

sql server删除前1000行数据的方法实例

如上图,既然有序号排序了,那直接删除前10行数据

  1. delete from
  2. (select ROW_NUMBER() over
  3. (order by 日期) as num ,* from 表名) tt
  4. where tt.num<=10
复制代码

效果 是扫兴 的,delete from 不能直接嵌套子查询

(各位朋侪 假如 通过嵌套有办法处理,请公众号回复下哈)

末了 想到创建视图来处理,先按排序创建视图,语句如下:

  1. create view 视图名1
  2. as
  3. select ROW_NUMBER() over (order by 日期) as num ,* from 表名
  4. go
复制代码

查询视图,输出效果 集如下 :

sql server删除前1000行数据的方法实例

通过视图删除前10行数据,语句如下:

  1. delete from 视图名1 where num <=10;
复制代码

删除表格前1000行,把条件改成小于等于1000即可

小结:

1、oracle的rownum它是插入数据记录排序,而sql server是通过列排序,建议使用 前确认是否可以通过创建时间或发生时间排序,以免误删除数据;

2、通过删除表格前10行数据方法,加深对视图的相识 ,对视图的修改,会直接影响基表数据;

3、处理题目 时,也不肯定 非要一条语句得到效果 ,可以通过创建视图或暂时 表处理,大概 效果 会更好,也不轻易 影响查询性能。

总结

到此这篇关于sql server删除前1000行数据的文章就先容 到这了,更多干系 sqlserver删除前1000行数据内容请搜索 脚本之家从前 的文章或继续欣赏 下面的干系 文章盼望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 一网湖水沧 | 2021-9-17 16:55:25 | 显示全部楼层
admin楼主主机很热情啊!
回复

使用道具 举报

avatar Gemini迷妹 | 2021-9-18 02:56:49 | 显示全部楼层
我就搞不明白了,看帖回帖能死人么,居然只有我这么认真的在回帖!
回复

使用道具 举报

avatar 123457021 | 2021-9-18 21:30:25 | 显示全部楼层
好帖子!
回复

使用道具 举报

avatar fys24680 | 2021-9-23 14:13:47 | 显示全部楼层
admin楼主是我最崇拜的人!
回复

使用道具 举报

avatar 水草香蕉壁 | 2021-9-24 02:29:16 | 显示全部楼层
admin楼主病的不轻啊!
回复

使用道具 举报

avatar 银鲜目江探 | 2021-9-25 03:32:12 | 显示全部楼层
支持一下,下面的保持队形!
回复

使用道具 举报

avatar lang3344 | 2021-9-28 18:33:05 | 显示全部楼层
上次给admin楼主开的药,你都吃完了?
回复

使用道具 举报

avatar 陈嘉凯 | 2021-9-29 10:19:21 | 显示全部楼层
听admin楼主一席话,省我十本书!
回复

使用道具 举报

avatar 教风三应博 | 2021-9-29 14:26:32 | 显示全部楼层
admin楼主的病已经好了百分之六十二了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则