sql-server – 根据不满足单一条件的客户从SQL Server中删除所有
发布时间:2020-12-12 06:49:50 所属栏目:MsSql教程 来源:网络整理
导读:让我举例解释一下.请考虑下表: Customer Id | Food------------+---------1 | Pizza 1 | Burger 1 | Hot Dog 2 | Milkshake 2 | Burger 3 | Pizza 我想删除那些从未订购过Pizza的客户的所有记录.所以,我应该留下这个(客户#2删除): Customer Id | Food------
让我举例解释一下.请考虑下表:
Customer Id | Food ------------+--------- 1 | Pizza 1 | Burger 1 | Hot Dog 2 | Milkshake 2 | Burger 3 | Pizza 我想删除那些从未订购过Pizza的客户的所有记录.所以,我应该留下这个(客户#2删除): Customer Id | Food ------------+--------- 1 | Pizza 1 | Burger 1 | Hot Dog 3 | Pizza 我知道我可以做一个NOT IN但性能很糟糕. 编写此查询以在SQL Server中针对100,000条记录实现此目的的最高性能是什么? 解决方法一个简单的NOT EXISTS应该是 efficient和适当的索引.DELETE c1 FROM Customers c1 WHERE NOT EXISTS ( SELECT 1 FROM Customers c2 WHERE c1.[Customer Id] = c2.[Customer Id] AND c2.[Food] = 'Pizza' ); Demo 在[Customer Id]上创建索引,在Food上创建非聚集索引. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- SQLServer 2000 服务不能启动的解决办法
- [mircroftt][sqlserver 2000 driver for jdbc][s
- sql-server – 如何在实例上的所有数据库上运行相
- SQL Server SQL集合函数中case when then 使用的
- 装了多个版本的sqlserver,无法共享1433端口,可
- sql2000挂起无法安装的问题的解决方法
- SQLServer2008还原数据库3154错误解决方法
- SqlServer找出所有的子节点,并按树形结构、层次
- sql-server – 以特定用户身份执行xp_cmdshell命
- sqlserver2000 把数据库改名(包括修改逻辑文件名
热点阅读