sqlserver删除表的第一行数据(sql server删除前1000行数据的方法实例)
sqlserver删除表的第一行数据
sql server删除前1000行数据的方法实例近日,sql数据库入门学习群有朋友问到,利用sql如何删除表格的前1000行数据,是否可以实现?
如果是oracle数据库管理软件,实现起来相对简单多了
delete from 表名 where rownum<=1000;
那sql server数据库管理软件呢?
sql server里没有rownum功能,小编尝试用select top
先查询看下结果集,select * from 表名;
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 表名
输出结果如下:
如上图,既然有序号排序了,那直接删除前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
查询视图,输出结果集如下 :
通过视图删除前10行数据,语句如下:
delete from 视图名1 where num <=10;
删除表格前1000行,把条件改成小于等于1000即可
小结:
1、oracle的rownum它是插入数据记录排序,而sql server是通过列排序,建议使用前确认是否可以通过创建时间或发生时间排序,以免误删除数据;
2、通过删除表格前10行数据方法,加深对视图的了解,对视图的修改,会直接影响基表数据;
3、处理问题时,也不一定非要一条语句得到结果,可以通过创建视图或临时表处理,可能效果会更好,也不容易影响查询性能。
总结
到此这篇关于sql server删除前1000行数据的文章就介绍到这了,更多相关sqlserver删除前1000行数据内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- sqlserver索引介绍(浅析SQL Server的聚焦使用索引和查询执行计划)
- sqlserver 创建数据库链接(SqlServer数据库远程连接案例教程)
- sqlserver仲裁状态(使用 SQL 服务器时,"评估期已过期"错误消息解决方法)
- sqlserver小结(基于sqlserver的四种分页方式总结)
- sqlserver查看创建的索引(浅述SQL Server的聚焦强制索引查询条件和Columnstore Index)
- sqlserver2012登录出现报错18456(SQL Server 2012 sa用户登录错误18456的解决方法)
- navicat如何连接sql数据库(Navicat 连接SQLServer数据库图文步骤)
- sqlserver怎么写判断条件(SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解)
- sqlserver常见函数(SQL Server之JSON 函数详解)
- sqlserver2014怎么重新激活(解决Windows 10家庭版安装SQL Server 2014出现.net 3.5失败问题)
- sqlserver字符串截取填充(SQL Server实现split函数分割字符串功能及用法示例)
- sqlserver常用函数(SQLServer 日期函数大全小结)
- sqlserver2016标准分区(Sql Server 2016新功能之Row-Level Security值得关注)
- sql server2005如何配置(SQLServer2005创建定时作业任务)
- SQLServer2019安装教程图文详解(SQLServer2019安装教程图文详解)
- sqlserver备份还原数据(通过Windows批处理命令执行SQL Server数据库备份)
- 泰国人妖(变性手术生殖器要割掉吗)
- 泰国美女(泰国人妖和女性如何区分)
- 泰国旅游业怎么样(泰国的旅游产业)
- 越南新娘(越南新娘婚介网站)
- 越南新娘(越南新娘骗婚套路流程)
- 菲律宾游学(菲律宾游学中介机构)
热门推荐
- nginx最佳配置(nginx和lvs各自的优劣以及适合的使用环境)
- docker容器镜像内容(Docker容器从镜像恢复代码的操作步骤)
- serv-u界面怎么设置中文(Serv-U 550 Permission denied 的解决办法)
- .NET中常用的异常类
- firebug使用方法
- python怎么查看函数的返回值(python在回调函数中获取返回值的方法)
- 服务器启动nginx服务的命令(Nginx服务器添加Systemd自定义服务过程解析)
- mysql的简单介绍(MySQL Shell的介绍以及安装)
- docker容器内部怎么查看id(docker容器中无法获取宿主机hostname的解决方案)
- linux内核打印pc的值(linux内核copy_{to, from}_user的思考)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9