MINUS est une opération d'ensemble SQL qui sélectionne les éléments de la première table, puis supprime les lignes qui sont également renvoyées par la deuxième instruction SELECT dans Oracle. Et dans SQL Server, nous pouvons utiliser EXCEPT pour faire la même chose.
Lors de la migration de mon projet d'Oracle vers SQL Server, j'ai remarqué une différence. Si le premier jeu de résultats n'a pas d'enregistrements, moins amène le jeu de résultats de la deuxième instruction SELECT. Mais dans SQL Server, EXCEPT ne renvoie rien. Que puis-je faire dans ce cas? Je migre mon projet et souhaite faire de même avec la fonction moins dans SQL Server.
Merci de votre aide
Il n'y a aucune différence entre Oracle MINUS et SQL Server EXCEPT.
Ils sont destinés à faire la même chose.
Cela vérifiera any jeu de résultats de la première requête, puis exécutez le sauf s'il y a un résultat. Sinon, il exécute uniquement la deuxième requête.
IF EXISTS (SELECT NULL
FROM ... <first query criteria>
WHERE ...)
BEGIN
SELECT ... <first query>
EXCEPT
SELECT ... <second query>
END
ELSE
SELECT ... <second query>