Ta składnia nie istnieje w SQL Server. Użyj kombinacji And
i Or
.
SELECT *
FROM <table_name>
WHERE
(value_type = 1 and CODE1 = 'COMM')
OR (value_type = 1 and CODE1 = 'CORE')
(W tym przypadku możesz go skrócić, ponieważ value_type jest porównywany z tą samą wartością w obu kombinacjach. Chciałem tylko pokazać wzorzec, który działa jak IN w Oracle z wieloma polami.)
Używając IN z podzapytaniem, należy je przeformułować w następujący sposób:
Wyrocznia:
SELECT *
FROM foo
WHERE
(value_type, CODE1) IN (
SELECT type, code
FROM bar
WHERE <some conditions>)
Serwer SQL:
SELECT *
FROM foo
WHERE
EXISTS (
SELECT *
FROM bar
WHERE <some conditions>
AND foo.type_code = bar.type
AND foo.CODE1 = bar.code)
W zależności od przypadku można to zrobić na inne sposoby, takie jak sprzężenia wewnętrzne i tym podobne.