2

列 table1.id = table2.id を持つ table1 からすべての行を削除するクエリを作成しています

table1.id 列は、次のような xml 形式の nvarchar(max) です。

<customer><name>Paulo</name><gender>Male</gender><id>12345</id></customer>

編集: id 列は巨大な XML の一部にすぎないため、終了タグが開始タグと一致しない場合があります。

name.nodes を使用してみましたが、xml 列にのみ適用され、列のデータ型を変更することは選択できません。これまでのところ、これは使用している私のコードですPATINDEX

DELETE t1
FROM table1 t1
WHERE PATINDEX('%12345%',id) != 0

しかし、私が必要とするのは、次のような table2.id からすべての値を検索することです:

12345
67890
10000
20000
30000

sp_executesql および/または while ループのような任意のアプローチが適切でしょうか、または patindex を使用するよりも優れたアプローチはありますか? ありがとう!

4

2 に答える 2