近日,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()函数

语句如下:

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

删除前10行sql oracle,sql server 如何实现删除前1000行数据相关推荐

  1. mysql 删除外键 sql语句_sql server ql语句删除外键和删除

    sql server ql语句删除外键和删除 alter table tablename add constraint ordersrelationship foreign key mployeeid ...

  2. oracle 分组 top10 sql,oracle sql 合龙 分组 聚合函数

    oracle sql 合并 分组 聚合函数 工作中有一需求,要根据多个表的数据统计情况来更新另外一个表中的某个字段,折腾了会才写出如下sql: --最终版更新语句 update moka_user_u ...

  3. oracle group by sql,Oracle SQL GROUP BY“不是GROUP BY表达式”的帮助

    我有一张table some_table +--------+----------+---------------------+-------+ | id | other_id | date_valu ...

  4. oracle 等待sql,oracle sql 锁,锁等待相关sql

    1.查找当前表级锁的SQL如下: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, ...

  5. oracle删除查询的数据库语句,Oracle简略的语句 查询 删除 修改(1)

    Oracle简单的语句 查询 删除 修改(1) Dual系统表介绍 数据类型: 数据是信息数字表现形式,信息的加工处理是以大量的结构化数据为载体进行的,数据库管理系统的核心是数据库,数据库的主要对象是 ...

  6. 多列转多行sql oracle,sql多行转多列,中文没办法聚集的有关问题

    sql多行转多列,中文没办法聚集的问题? 我要将下表 选项      答案       姓名 爱好      篮球       bruce 年龄      28        bruce 性别     ...

  7. oracle怎么解析sql,oracle SQL解析步骤小结

    1 The syntax of the SQL statement is verified. SQL的语法检查 2 The data dictionary is searched to verify ...

  8. map分组后取前10个_map根据属性排序、取出map前n个

    /** * map根据value排序 * flag = 1 正序 * flag = 0 倒序 * * @param map * @param flag * @return */ public stat ...

  9. sql 取表的前10条记录,任意中间几行的记录

    取表的前10条记录 with a as(select *,row_number()over(order by department)rn from _SucceedStaff ) select * f ...

最新文章

  1. 懂数学人的都认同:数学的本质[关联]万物(二)
  2. JQUERY获取text,areatext,radio,checkbox,select值
  3. SQL数据库。按年,月,日查询
  4. Picture POJ - 1177(矩形周长并))
  5. java面试题32:Java网络程序设计中,下列正确的描述是()
  6. Linux学习之Linux历史
  7. cuda 编译 linux,Linux下安装Tensorflow源码及编译
  8. 动态HTML处理和机器图像识别
  9. 11月8日PHP练习《留言板》
  10. js 滚动条自动滚动到最底部
  11. python游戏服务器搭建教程_游戏服务端pomelo安装配置
  12. opencv 霍夫变换检测直线和圆
  13. 现代控制理论(二)李雅普诺夫稳定性分析
  14. 谈计算机财务管理的相关论文,有关计算机财务管理的思考论文
  15. 安装Go语言开发工具
  16. 嵌入式C语言开发学习笔记 —— CSPL
  17. 字节跳动前端实习面试经历分享
  18. 【读书笔记】《写给大家看的设计书》
  19. css音量调节,CSS3 音量调节旋钮
  20. python怎么设置dos_Windows下Python环境的配置和Dos界面的调用

热门文章

  1. html 彩虹色,CSS3 彩虹色LOADING动效
  2. 《Java基础入门第2版》--黑马程序员 课后答案及其详解 第7章 I/O流
  3. 长尾词需要几个字?长尾关键词怎么找?
  4. ELMo: Deep contextualized word representations
  5. 十分钟,让你学会Vue的这些巧妙冷技巧
  6. 希捷硬盘1T挂了(1)
  7. 查看电脑的BIOS版本的五种方法
  8. html fieldset 中DIV宽度,使用div+css模拟fieldset标签
  9. Go语言中的fmt.Print, fmt.Printf, fmt.Println的区别和使用场景
  10. Loading PDSC Debug Description Failed for STMicroelectronics STM32Lxxxxxxx”