2016-08-30 8 views
2

選択した文字列の値に別のテーブルの別の値が含まれているすべてのレコードをテーブルから削除します(大文字と小文字を区別しません)。SQL Server:delete string valueに別の値が含まれています

たとえば、value1="Hello"(あるテーブルから)とvalue2-"Hello word"(別のテーブルから)の場合は、そのレコードを削除する必要があります。

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

しかし、このSQL文はエラーを返します。

+0

table2に1行が含まれている場合にのみ機能します。 – jarlh

+1

両方のテーブルのサンプルテーブルデータと、削除後のテーブル1のデータを追加します。 – jarlh

+1

返されるエラーは何ですか?あなたは 'CONCAT()'を見たいかもしれません。 –

答えて

5

あなたは基準が存在する使用することができますあなたがから削除されているものを表

delete 
from Table1 T1 
where exists (select T2.value2 from Table2 T2 where T1.value1 like '%'+T2.value2+'%') 
2
DELETE T1 
FROM TABLE1 T1 
INNER JOIN TABLE2 T2 
    ON T1.VALUE1 LIKE ('%'+ T2.VALUE2 + '%') 

指定。

関連する問題