Delete与Top连用限制删除行

作者晚上写程序时,尝试用top关键字限制删除行范围,所写SQL语句无法执行。在Csdn上看到类似回复思路相近,但未解决问题,最后在MSDN上得知TOP子句与DELETE一起使用时,会针对随机选择的第n行执行删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

晚上写程序,希望使用top关键字限制删除行的范围,试了几次总是发现语句不能执行。

当时自己的思路是这样的

delete  producttemp where productid in (select top 5* from producttemp)

google了一下发现Csdn上面给类似问题的回复与我写出的sql语句思路差不多,估计大家都没有试验过,就凭自己感觉这么写了吧。

最后还是在MSDN上面得到正解:

可以使用 TOP 子句限制 DELETE 语句中删除的行数。当 TOP (n) 子句与 DELETE 一起使用时,将针对随机选择的第 n 行执行删除操作。

DELETE TOP (20) 
FROM Purchasing.PurchaseOrderDetail
WHERE DueDate < '20020701';
GO

转载于:https://www.cnblogs.com/zhangchenliang/archive/2010/02/03/1662482.html

### MySQL 练习题与学习资源 以下是关于 MySQL 的一些练习题和学习资源推荐: #### 一、MySQL 练习题 1. **基础查询** 使用 EMP 和 DEPT ,编写 SQL 查询来获取所有部门的名称及其对应的员工数量。可以参考结构的学习材料[^1]。 2. **条件过滤** 编写一条 SQL 查询语句,返回 `score` 中课程 ID 属于特定范围的学生记录。此类型的题目可以通过调整 `WHERE` 条件实现[^2]。 3. **子查询应用** 利用子查询完成更复杂的逻辑处理。例如,找出薪资高于平均薪资的所有员工的信息。这涉及到了嵌套查询的概念[^3]。 4. **多联结** 结合多个的数据进行分析。比如,找到那些其直属上司工资大于 3000 的雇员名单及相关信息。这是一个典型的多连接案例[^4]。 ```sql -- 示例:求出员工领导的薪水超过3000的员工名称与领导名称 SELECT e.empno AS 员工编号, e.ename AS 员工, m.ename AS 领导, m.sal AS 领导薪资, d.dname AS 部门名 FROM emp e JOIN emp m ON e.mgr = m.empno JOIN dept d ON e.deptno = d.deptno WHERE m.sal > 3000; ``` #### 二、MySQL 学习资源 - 官方文档:始终是最权威的第一手资料,涵盖了从安装配置到高级特性的全面介绍。 - 在线教程网站如 W3Schools 提供了简单易懂的操作指南适合初学者快速上手。 - 各大 MOOC 平台上的视频课程能够提供更加直观的教学体验帮助理解抽象概念。 - 社区论坛和技术博客也是不可忽视的知识宝库,在这里可以发现许多实际开发中的技巧分享。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值