複数の値を持つ where 句に複数の列を持つクエリを実行しています。SQLでは、IN条件を使用して正しい出力を満たし、取得できることを知っています。Teradataで行う方法は何ですか?
Oracle の私のコードは次のようになります。
select td.country_code,td.phone_num
from telephone_directory td
where (td.country_code, td.phone_num) in ((91,1234567890),(44,1020304050),(1,998877446655))
これは正確な結果、つまり3行を出力します
Teradata でのクエリは次のようになります
select country_code ,phone_num
from telephone_directory
where (country_code in (91, 44, 1) and phone_num in( 1234567890, 1020304050, 998877446655)
ただし、これはより多くの行を返します。
country_code phone_num
91 1234567890
91 1020304050
44 1020304050
1 998877446655
注: country_code と電話番号の組み合わせは一意ではありません。
ORACLE のような teradata でそれを除外する方法はありますか?