• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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中删除重复数据方法
    • 如何强制删除或恢复SQLServer正在使用的数据库
    • 删除sqlserver数据库日志和没有日志的数据库恢复办法
    • 如何在SQLSERVER中快速有条件删除海量数据
    • SQLserver删除某数据库中所有表实现思路
    • 在 SQLSERVER 中快速有条件删除海量数据
    上一篇:Blazor Server 应用程序中进行 HTTP 请求
    下一篇:SQL Server之SELECT INTO 和 INSERT INTO SELECT案例详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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