Sql 从一长串选项中删除
我需要从MyTable中删除一些行,通常使用“DeletefromMyTable”和“where”语句。我现在有大约100种不同的标准,用于基于一列删除行,而使用“or”将花费很长时间。我可以用一张单子把它缩短吗。下面是一个例子:Sql 从一长串选项中删除,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我需要从MyTable中删除一些行,通常使用“DeletefromMyTable”和“where”语句。我现在有大约100种不同的标准,用于基于一列删除行,而使用“or”将花费很长时间。我可以用一张单子把它缩短吗。下面是一个例子: GroupInitials ABC DEF GHI JKL MNO PQR STU VWX AEF UYT 我一直在做下面的事情 Delete from MyTable Where GroupInitials = 'ABC' or Group
GroupInitials
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
AEF
UYT
我一直在做下面的事情
Delete from MyTable
Where GroupInitials = 'ABC' or GroupInitials ='GHI' or GroupInitials = 'STU' ...
我有一个很长的列表要删除,所以有没有什么方法我可以简单地列出这些,而不是使用100个“或”语句
提前感谢您可以在谓词中使用
:
Delete
from MyTable
Where GroupInitials IN('ABC', 'GHI', 'STU' ...);
或者,您可以将这些值写入临时表,并使用相同的方法删除它们:
Delete
from MyTable
Where GroupInitials IN(SELECT name from temptable);
为此,您可以使用连接而不是中的您可以使用中的谓词:
Delete
from MyTable
Where GroupInitials IN('ABC', 'GHI', 'STU' ...);
或者,您可以将这些值写入临时表,并使用相同的方法删除它们:
Delete
from MyTable
Where GroupInitials IN(SELECT name from temptable);
通过这种方式,您可以加入而不是中的