この構文はSQLServerには存在しません。 And
の組み合わせを使用する およびOr
。
SELECT *
FROM <table_name>
WHERE
(value_type = 1 and CODE1 = 'COMM')
OR (value_type = 1 and CODE1 = 'CORE')
(この場合、value_typeは両方の組み合わせで同じ値と比較されるため、短くすることができます。複数のフィールドを持つOracleのINのように機能するパターンを表示したかっただけです。)
サブクエリでINを使用する場合は、次のように言い換える必要があります。
オラクル:
SELECT *
FROM foo
WHERE
(value_type, CODE1) IN (
SELECT type, code
FROM bar
WHERE <some conditions>)
SQL Server:
SELECT *
FROM foo
WHERE
EXISTS (
SELECT *
FROM bar
WHERE <some conditions>
AND foo.type_code = bar.type
AND foo.CODE1 = bar.code)
場合によっては、内部結合など、他の方法もあります。