SQL 行集的删除语句
SQL delete statement for a rowset
我需要通过使用 SQL(仅限 status =Loaded
)比较 Table 2 来删除行集 Table 1(4 行集),否则保留行集为此 IG
。
例如,来自TABLE 1 的IG 10 数据将被删除,而IG 60 数据将保持与未加载该IG 对应的所有状态。
您可以尝试以下解决方案。内部 SELECT
获取所有未成功加载的 IG
值。 DELETE
本身会删除 IG
值不在此列表中的所有行(加载不成功)IG
值。
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'
)
试试这个
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') )
)
您可以尝试以下查询
DELETE FROM TABLE1 WHERE IG NOT IN (SELECT IG FROM TABLE2 WHERE STATUS = 'ERROR')
使用 NOT IN 子句:
delete from TB1 where not IG in (
select IG from TB2 where status <> 'Loaded'
)
我需要通过使用 SQL(仅限 status =Loaded
)比较 Table 2 来删除行集 Table 1(4 行集),否则保留行集为此 IG
。
例如,来自TABLE 1 的IG 10 数据将被删除,而IG 60 数据将保持与未加载该IG 对应的所有状态。
您可以尝试以下解决方案。内部 SELECT
获取所有未成功加载的 IG
值。 DELETE
本身会删除 IG
值不在此列表中的所有行(加载不成功)IG
值。
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'
)
试试这个
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') )
)
您可以尝试以下查询
DELETE FROM TABLE1 WHERE IG NOT IN (SELECT IG FROM TABLE2 WHERE STATUS = 'ERROR')
使用 NOT IN 子句:
delete from TB1 where not IG in (
select IG from TB2 where status <> 'Loaded'
)