Минус против Разницы в ORACLE/SQL Server

MINUS - это операция набора SQL, которая выбирает элементы из первой таблицы, а затем удаляет строки, которые также возвращаются вторым оператором SELECT в Oracle. И в SQL Server мы можем использовать EXCEPT, чтобы сделать то же самое.

При переносе моего проекта с Oracle на SQL Server я заметил разницу. Если первый набор результатов не имеет записей, минус возвращает набор результатов второго оператора SELECT. Но в SQL Server EXCEPT ничего не возвращает. Что я могу сделать в этом случае? Я мигрирую свой проект и хочу выполнить ту же функцию минус в SQL Server.

Спасибо за вашу помощь

2 ответа

Решение

Нет никакой разницы между Oracle MINUS и SQL Server, КРОМЕ.

Они предназначены для того же.

Это проверит любой набор результатов из первого запроса, затем запустит исключение, если есть результат. Если нет, то запускается только второй запрос.

IF EXISTS (SELECT NULL
           FROM ... <first query criteria>
           WHERE ...)
BEGIN
    SELECT ... <first query>
    EXCEPT 
    SELECT ... <second query>
END
ELSE
SELECT ... <second query>
Другие вопросы по тегам