Deze syntaxis bestaat niet in SQL Server. Gebruik een combinatie van And
en Or
.
SELECT *
FROM <table_name>
WHERE
(value_type = 1 and CODE1 = 'COMM')
OR (value_type = 1 and CODE1 = 'CORE')
(In dit geval zou je het korter kunnen maken, omdat value_type wordt vergeleken met dezelfde waarde in beide combinaties. Ik wilde alleen het patroon laten zien dat werkt als IN in Oracle met meerdere velden.)
Als je IN gebruikt met een subquery, moet je het als volgt herformuleren:
Orakel:
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)
Er zijn andere manieren om dit te doen, afhankelijk van het geval, zoals inner joins en dergelijke.