通常、フィルタでは XML 変数を使用します。これは、作業が簡単だからです。
column1 が主キーである tablea について考えてみます。
declare @xml xml = '<column1>1</column1><column1>2</column1>'
select *
from tablea
where
column1 in (select x.i.value('.', 'bigint') from @xml.nodes('/column1') x(i)) or
@xml is null
これは、xml に対する select が値 1 と 2 を持つ 2 つの行を返すために機能します。
これで、複合主キー column1 と column2 を持つ tableb ができました。そう:
declare @xml xml = '<row><column1>1</column1><column2>2</column2></row><row><column1>3</column1><column2>4</column2></row>'
次のように、xml に選択を記述して各行と列を返すにはどうすればよいですか。
column1 column2
1 2
3 4