SQL | Operador MENOS
O operador MINUS é usado com dois SELECT instruções para retornar apenas as linhas da primeira consulta que não estão presentes na segunda. Ele filtra todas as linhas comuns e mantém apenas as linhas exclusivas do primeiro conjunto de resultados.
Representação Pictórica :
Como você pode ver no diagrama acima, o operador MENOS retornará apenas as linhas que estão presentes no conjunto de resultados da Tabela1 e não presentes no conjunto de resultados da Tabela2.
Sintaxe:
SELECT column1 column2 ... columnN
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];Na sintaxe acima
- Primeiro SELECIONE: Recupera colunas especificadas (coluna1 coluna2 ... colunaN) de table_name1 opcionalmente filtrada por uma condição WHERE.
- MENOS: O operador MENOS retorna linhas da primeira consulta que não estão presentes na segunda consulta.
- Segunda SELEÇÃO: Recupera as mesmas colunas de table_name2 opcionalmente filtradas por uma condição WHERE.
- Saída: O resultado inclui linhas de table_name1 que não existem em table_name2. As duplicatas são removidas da saída final.
Tabelas :
Tabela 1
| Nome | Endereço | Idade | Nota |
|---|---|---|---|
| Severo | Délhi | 20 | UM |
| Gaurav | Jaipur | 21 | B |
| Prática | Mumbai | 21 | UM |
| Dhanraj | Calcutá | 22 | B |
Tabela 2
| Nome | Idade | Telefone | Nota |
|---|---|---|---|
| Akash | 20 | XXXXXXXXX | UM |
| Dheeraj | 21 | XXXXXXXXX | B |
| Vaibhav | 21 | XXXXXXXXX | UM |
| Dhanraj | 22 | XXXXXXXXX | B |
Consultas :
SELECT NAME AGE GRADE
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;
Saída:
| Nome | Idade | Nota |
|---|---|---|
| Severo | 20 | UM |
| Gaurav | 21 | B |
| Prática | 21 | UM |
Nesta consulta:
- Retorna apenas as linhas exclusivas da Tabela1.
- Se a última linha de ambas as tabelas for igual, ela será excluída do resultado. Assim, apenas as três primeiras linhas da Tabela1 serão retornadas.
Criar questionárioObservação :
- O operador MINUS é compatível com Oracle, mas não é compatível com SQL Server ou PostgreSQL.
- Para esses bancos de dados, use o
EXCEPToperador como alternativa.