SQL Server:删除字符串值包含其他值的位置

时间:2016-08-30 10:39:56

标签: sql sql-server sql-delete sql-like sql-in

我想从表中删除所有记录,其中所选字符串值包含在另一个表中的另一个值中(忽略区分大小写)。

例如:如果value1="Hello"(来自一个表)和value2-"Hello word"(来自另一个表),那么该记录应该被删除。

DELETE FROM [table1] 
WHERE value1 LIKE  '%' + (SELECT value2 FROM [table2]) + '%'

但是该SQL语句返回错误。

2 个答案:

答案 0 :(得分:5)

您可以使用存在标准:

delete
from Table1 T1
where exists (select T2.value2 from Table2 T2 where T1.value1 like '%'+T2.value2+'%')

答案 1 :(得分:2)

DELETE T1
FROM TABLE1 T1
INNER JOIN TABLE2 T2
  ON T1.VALUE1 LIKE ('%'+ T2.VALUE2 + '%') 

指定要删除的表格。