Tato syntaxe v SQL Server neexistuje. Použijte kombinaci And
a Or
.
SELECT *
FROM <table_name>
WHERE
(value_type = 1 and CODE1 = 'COMM')
OR (value_type = 1 and CODE1 = 'CORE')
(V tomto případě byste to mohli zkrátit, protože value_type je porovnáván se stejnou hodnotou v obou kombinacích. Chtěl jsem jen ukázat vzor, který funguje jako IN v oracle s více poli.)
Při použití IN s poddotazem jej musíte přeformulovat takto:
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)
Existují další způsoby, jak to udělat, v závislosti na případu, jako vnitřní spojení a podobně.