que - Menos vs Excepto la diferencia en ORACLE/SQL Server
temp table in sql server 2014 (2)
MENOS es una operación de conjunto de SQL que selecciona elementos de la primera tabla y luego elimina las filas que también son devueltas por la segunda instrucción SELECT en Oracle. Y en SQL Server, podemos usar EXCEPTO para hacer lo mismo.
Al migrar mi proyecto de Oracle a SQL Server, noté una diferencia. Si el primer conjunto de resultados no tiene registros, menos trae el conjunto de resultados de la segunda instrucción SELECT. Pero en SQL Server, EXCEPTO no devuelve nada. ¿Qué puedo hacer en ese caso? Estoy migrando mi proyecto y quiero hacer la misma función de menos en SQL Server.
Gracias por tu ayuda
Esto verificará cualquier conjunto de resultados de la primera consulta, luego ejecutará la excepción si hay un resultado. Si no, solo ejecuta la segunda consulta.
IF EXISTS (SELECT NULL
FROM ... <first query criteria>
WHERE ...)
BEGIN
SELECT ... <first query>
EXCEPT
SELECT ... <second query>
END
ELSE
SELECT ... <second query>
No hay diferencia entre Oracle MINUS y SQL Server EXCEPTO.
Están destinados a hacer lo mismo.
- http://dotnetguts.blogspot.com/2008/04/minus-keyword-in-sql-server.html
- http://blog.sqlauthority.com/2008/08/07/sql-server-except-clause-in-sql-server-is-similar-to-minus-clause-in-oracle/
- http://vyaskn.tripod.com/oracle_sql_server_differences_equivalents.htm (busque el operador MENOS), lea la descripción, que coincide exactamente con EXCEPTO para SQL Server)
- Oracle MINUS vs SQL Server EXCEPTO (comparar documentos)