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


Posted in SQL Server onAugust 30, 2021

近日,sql数据库入门学习群有朋友问到,利用sql如何删除表格的前1000行数据,是否可以实现?

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

delete  from 表名  where rownum<=1000;

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

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

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

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

delete from 表名 
where 条码 
in (select top 10 条码 from 表名)

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

如果这样处理会出问题,为什么呢?如果条件是in ,那只能是删除前10条记录里面的条码范围,这样会造成误删除表中所有的该条码记录,所以此方法行不通。

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

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

必须和over一起使用

语法如下:

select *,ROW_NUMBER() over(order by productid) as num from product_test;

语句如下:

select  ROW_NUMBER() over (order by 日期) as num  ,* from 表名

输出结果如下:

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

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

delete from
 (select  ROW_NUMBER() over
 (order by 日期) as num  ,* from 表名) tt 
where tt.num<=10

结果是失望的,delete from 不能直接嵌套子查询

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

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

create view 视图名1 
as
select  ROW_NUMBER() over (order by 日期) as num  ,*  from 表名
go

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

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

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

delete from 视图名1 where num <=10;

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

小结:

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

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

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

总结

到此这篇关于sql server删除前1000行数据的文章就介绍到这了,更多相关sqlserver删除前1000行数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

SQL Server 相关文章推荐
SQL Server——索引+基于单表的数据插入与简单查询【1】
Apr 05 SQL Server
SqlServer: 如何更改表的文件组?(进而改变存储位置)
Apr 05 SQL Server
SQLServer2008提示评估期已过解决方案
Apr 12 SQL Server
sqlserver2017共享功能目录路径不可改的解决方法
Apr 16 SQL Server
在 SQL 语句中处理 NULL 值的方法
Jun 07 SQL Server
sql字段解析器的实现示例
Jun 23 SQL Server
SQL语句中JOIN的用法场景分析
Jul 25 SQL Server
Spark SQL 2.4.8 操作 Dataframe的两种方式
Oct 16 SQL Server
SQL SERVER触发器详解
Feb 24 SQL Server
SQL Server实现分页方法介绍
Mar 16 SQL Server
SQL SERVER中的流程控制语句
May 25 SQL Server
SQL使用复合索引实现数据库查询的优化
May 25 SQL Server
SQLServer之常用函数总结详解
Aug 30 #SQL Server
SQL写法--行行比较
Aug 23 #SQL Server
SQL语句中JOIN的用法场景分析
sql通过日期判断年龄函数的示例代码
Jul 16 #SQL Server
利用 SQL Server 过滤索引提高查询语句的性能分析
SqlServer数据库远程连接案例教程
数据库之SQL技巧整理案例
Jul 07 #SQL Server
You might like
PHPMailer的主要功能特点和简单使用说明
2014/02/17 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
最新28个很棒的jQuery 教程
2011/05/28 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
jstree的简单实例
2016/12/01 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
python实现simhash算法实例
2014/04/25 Python
跟老齐学Python之做一个小游戏
2014/09/28 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
Django之模型层多表操作的实现
2019/01/08 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
3种python调用其他脚本的方法
2020/01/06 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
Python修改列表值问题解决方案
2020/03/06 Python
python爬虫实现获取下一页代码
2020/03/13 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
质检部职责
2013/12/28 职场文书
个人自我评价范文
2014/02/05 职场文书
借款协议书范本
2014/04/22 职场文书
协议书格式
2014/04/23 职场文书
个人向公司借款协议书
2014/10/09 职场文书
庐山导游词
2015/02/03 职场文书
英文版辞职信
2015/02/28 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript