行集的SQL删除语句

问题描述 投票:-1回答:4

我需要通过使用SQL比较表2(仅status =Loaded)来删除表1(4行集)的行集,否则保留该IG的行集。

例如,将删除表1中的IG 10数据,并且IG 60数据将保持与未加载该IG对应的所有状态相同。

enter image description here

sql sql-server tsql sql-delete
4个回答
0
投票

您可以尝试以下操作:

DELETE FROM Table1 WHERE NOT IG IN (
  SELECT IG FROM Table2 WHERE Status <> 'Loaded'
)

为了确保删除正确的行,可以先使用以下SELECT

SELECT * FROM Table1 WHERE NOT IG IN (
  SELECT IG FROM Table2 WHERE Status <> 'Loaded'
)

0
投票

尝试一下

delete From [TABLE 1]
where IG in
(
Select IG from [TABLE 2] a where not exists(Select 1 From [TABLE 2] b where a.IG  = b.IG and Status not in ('Loaded') )
)

0
投票

您可以在下面的查询中尝试

DELETE FROM TABLE1 WHERE IG NOT IN (SELECT IG FROM TABLE2 WHERE STATUS = 'ERROR')

0
投票

使用NOT IN子句:

delete from TB1 where not IG in  (
  select IG from TB2 where status <> 'Loaded'
)
© www.soinside.com 2019 - 2024. All rights reserved.