SQL | Operador MENOS
El operador MENOS se utiliza con dos SELECT declaraciones para devolver solo aquellas filas de la primera consulta que no están presentes en la segunda. Filtra todas las filas comunes y conserva solo las filas únicas del primer conjunto de resultados.
Representación pictórica :
Como puede ver en el diagrama anterior, el operador MENOS devolverá solo aquellas filas que están presentes en el conjunto de resultados de la Tabla1 y no presentes en el conjunto de resultados de la Tabla2.
Sintaxis:
SELECT column1 column2 ... columnN
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];En la sintaxis anterior
- Primero SELECCIONAR: Recupera columnas especificadas (columna1 columna2... columnaN) de nombre_tabla1 opcionalmente filtradas por una condición WHERE.
- MENOS: El operador MENOS devuelve filas de la primera consulta que no están presentes en la segunda consulta.
- Segunda SELECCIONAR: Recupera las mismas columnas de table_name2 opcionalmente filtradas por una condición WHERE.
- Producción: El resultado incluye filas de nombre_tabla1 que no existen en nombre_tabla2. Los duplicados se eliminan del resultado final.
Mesas :
Tabla 1
| Nombre | DIRECCIÓN | Edad | Calificación |
|---|---|---|---|
| Duro | Delhi | 20 | A |
| Gaurav | Jaipur | 21 | B |
| Práctica | Bombay | 21 | A |
| Dhanraj | calcuta | 22 | B |
Tabla 2
| Nombre | Edad | Teléfono | Calificación |
|---|---|---|---|
| Akash | 20 | XXXXXXXXX | A |
| Dheeraj | 21 | XXXXXXXXX | B |
| Vaibhav | 21 | XXXXXXXXX | A |
| Dhanraj | 22 | XXXXXXXXX | B |
Consultas :
SELECT NAME AGE GRADE
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;
Producción:
| Nombre | Edad | Calificación |
|---|---|---|
| Duro | 20 | A |
| Gaurav | 21 | B |
| Práctica | 21 | A |
En esta consulta:
- Devuelve sólo las filas que son exclusivas de la Tabla1.
- Si la última fila de ambas tablas es la misma, se excluye del resultado. Por tanto, sólo se devolverán las tres primeras filas de la Tabla1.
Crear cuestionarioNota :
- El operador MINUS es compatible con Oracle pero no con SQL Server ni PostgreSQL.
- Para esas bases de datos utilice el
EXCEPToperador como alternativa.