Този синтаксис не съществува в SQL Server. Използвайте комбинация от And
и Or
.
SELECT *
FROM <table_name>
WHERE
(value_type = 1 and CODE1 = 'COMM')
OR (value_type = 1 and CODE1 = 'CORE')
(В този случай можете да го направите по-кратък, защото value_type се сравнява с една и съща стойност и в двете комбинации. Просто исках да покажа модела, който работи като IN в oracle с множество полета.)
Когато използвате IN с подзаявка, трябва да я перифразирате така:
Oracle:
SELECT *
FROM foo
WHERE
(value_type, CODE1) IN (
SELECT type, code
FROM bar
WHERE <some conditions>)
SQL сървър:
SELECT *
FROM foo
WHERE
EXISTS (
SELECT *
FROM bar
WHERE <some conditions>
AND foo.type_code = bar.type
AND foo.CODE1 = bar.code)
Има и други начини да го направите, в зависимост от случая, като вътрешни съединения и други подобни.