Denne syntaks findes ikke i SQL Server. Brug en kombination af And
og Or
.
SELECT *
FROM <table_name>
WHERE
(value_type = 1 and CODE1 = 'COMM')
OR (value_type = 1 and CODE1 = 'CORE')
(I dette tilfælde kan du gøre det kortere, fordi værdi_type sammenlignes med den samme værdi i begge kombinationer. Jeg ville bare vise mønsteret, der fungerer ligesom IN i orakel med flere felter.)
Når du bruger IN med en underforespørgsel, skal du omformulere den sådan her:
Oracle:
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)
Der er andre måder at gøre det på, afhængigt af sagen, såsom indre samlinger og lignende.