0

我需要从 MyTable 中删除一些行,我通常使用“Delete From MyTable”,然后使用“where”语句。我现在有大约 100 种不同的标准来删除基于一列的行,并且使用“或”将永远存在。我可以用一个列表来缩短它吗?一个例子的尝试如下:

GroupInitials 

ABC

DEF

GHI

JKL

MNO

PQR

STU

VWX

AEF

UYT

我一直在做以下事情

Delete from MyTable

Where GroupInitials = 'ABC' or GroupInitials ='GHI' or GroupInitials = 'STU' ...

我有一长串要删除的东西,所以有什么方法可以简单地列出这些,而不是使用 100 个“或”语句

提前致谢

4

1 回答 1

4

您可以使用IN谓词:

Delete 
from MyTable
Where GroupInitials IN('ABC', 'GHI', 'STU' ...);

或者您可以将这些值写入临时表并使用相同的方式删除它们:

Delete 
from MyTable
Where GroupInitials IN(SELECT name from temptable);

对于这种方式,您可以JOIN代替IN.

于 2013-06-26T13:02:15.153 回答