Denna syntax finns inte i SQL Server. Använd en kombination av And
och Or
.
SELECT *
FROM <table_name>
WHERE
(value_type = 1 and CODE1 = 'COMM')
OR (value_type = 1 and CODE1 = 'CORE')
(I det här fallet kan du göra det kortare, eftersom value_type jämförs med samma värde i båda kombinationerna. Jag ville bara visa mönstret som fungerar som IN i oracle med flera fält.)
När du använder IN med en underfråga måste du omformulera den så här:
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)
Det finns andra sätt att göra det, beroende på fallet, som inre skarvar och liknande.