Questa sintassi non esiste in SQL Server. Usa una combinazione di And
e Or
.
SELECT *
FROM <table_name>
WHERE
(value_type = 1 and CODE1 = 'COMM')
OR (value_type = 1 and CODE1 = 'CORE')
(In questo caso, potresti renderlo più breve, perché value_type viene confrontato con lo stesso valore in entrambe le combinazioni. Volevo solo mostrare il modello che funziona come IN in Oracle con più campi.)
Quando si utilizza IN con una sottoquery, è necessario riformularla in questo modo:
Oracolo:
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)
Ci sono altri modi per farlo, a seconda dei casi, come inner join e simili.