SQL中如何删除指定查询出来的数据

暗香疏影 创作者

我们知道,通过Delete From [xxx] where a=x 可以删除数据,那么如何删除通过查询出来的数据呢?

示例

w3resources - SQL Delete records using subqueries

1
2
3
4
DELETE FROM customer1
WHERE agent_code=ANY(
SELECT agent_code FROM agents
WHERE working_area='London');

那么我们如何删除通过查询发现对比两个查询中的不一致的呢?

SQL Compare
A ∪ B : UNION or UNION ALL (UNION eliminates duplicates, UNION ALL keeps them)
A ∩ B : INTERSECT
A − B : EXCEPT

1
2
3
SELECT CustId, CustName, CustAddress, CustPhone FROM Original
EXCEPT
SELECT CustId, CustName, CustAddress, CustPhone FROM Revised

所以当我们想要删除通过查询对比出不一致的数据,应该

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ELETE FROM customer1
WHERE agent_code=ANY(


Select UserID
From Original
Where UserID not like '[0-9]%'

EXCEPT

SELECT
UserID
FROM Revised as cs
Left join [TTID] on cs.CustId = TTID.CustId
where cs.UserID not like ''

)
  • 标题: SQL中如何删除指定查询出来的数据
  • 作者: 暗香疏影
  • 创建于 : 2022-01-25 00:00:00
  • 更新于 : 2022-01-25 00:00:00
  • 链接: https://blog.23ikr.com/2022/01/25/2022-01-25-SQL-EXCEPT-Delete/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
SQL中如何删除指定查询出来的数据