TÓPICO 8 – SET OPERATORS

Neste tópico 8, falarei sobre os Set Operators que servem para combinar 2 ou mais clausulas SELECT, fazendo com que a saída seja mesclada de alguma maneira. Por ser um assunto pequeno, colocarei aqui apenas algumas dicas para quem for fazer o exame de certificação em SQL.

Os operadores SET são:

  • UNION: Combina conjuntos de linhas, eliminando as linhas duplicadas (menos performático que o UNION ALL).
  • UNION ALL: Combina conjuntos de linhas sem eliminar as duplicadas.
  • INTERSECT: Inclui linhas comuns em ambas as queries, eliminando as duplicadas.
  • MINUS: Retorna o que existe no primeiro conjunto de linhas menos o segundo conjunto de linhas (As linhas que tem na primeira tabela, que não tem na segunda tabela, ou seja, retorna as linhas que existem unicamente no primeiro SELECT).

DICAS RÁPIDAS SOBRE OS SET OPERATORS

– Para que os SET operators funcionem, o numero de parâmetros nos SELECTs deve ser igual, bem como o tipo de dados (Conversão implícita é permitida aqui).

– Tipos de dados LOB não podem ser usados.

– A clausula ORDER BY só deve aparecer no final, ou seja, no último SELECT.

– Multiplos operadores SET podem ser usados em uma query. E não existe uma prioridade de execução, ou seja, quem aparecer primeiro será executado primeiro. Essa regra só pode ser quebrada caso se use parênteses. Ex:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”ICAgIFNFTEVDVCAuLi4KICAgIFVOSU9OCiAgICAoU0VMRUNULi4uCiAgICAgSU5URVJTRUNUCiAgICAgU0VMRUNULi4uKQogICAgSU5URVJTRUNUCiAgICBTRUxFQ1QuLi4=” hover_enabled=”0″]ICAgIFNFTEVDVCAuLi4KICAgIFVOSU9OCiAgICAoU0VMRUNULi4uCiAgICAgSU5URVJTRUNUCiAgICAgU0VMRUNULi4uKQogICAgSU5URVJTRUNUCiAgICBTRUxFQ1QuLi4=[/et_pb_dmb_code_snippet]

OBS1: Não se pode ter uma clausula ORDER BY dentro da subquery.

– Com SET operators, a clausula ORDER BY é restrita apenas para identificar itens comuns na lista do SELECT. Ex:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”ICAgIC0tIEZVTkNJT05BCiAgICAgU0VMRUNUIFQxLklEX1RBQiAiSURfVEFCIiwgVDEuREVTQ19UQUIsIFQxLkRBVEFfVEFCIAogICAgICAgIEZST00gVEFCX1RFU1RFU19TRVRfT1BFUkFUT1JTXzAxIFQxCiAgICAgVU5JT04gCiAgICAgU0VMRUNUIFQyLklEX1RBQiwgVDIuREVTQ19UQUIsIFQyLkRBVEFfVEFCIAogICAgICAgIEZST00gVEFCX1RFU1RFU19TRVRfT1BFUkFUT1JTXzAyIFQyCiAgICAgT1JERVIgQlkgIklEX1RBQiIKCiAgICAgLS0gRlVOQ0lPTkEKICAgICBTRUxFQ1QgVDEuSURfVEFCICJJRF9UQUIiLCBUMS5ERVNDX1RBQiwgVDEuREFUQV9UQUIgCiAgICAgICAgRlJPTSBUQUJfVEVTVEVTX1NFVF9PUEVSQVRPUlNfMDEgVDEKICAgICBVTklPTiAKICAgICBTRUxFQ1QgVDIuSURfVEFCLCBUMi5ERVNDX1RBQiwgVDIuREFUQV9UQUIgCiAgICAgICAgRlJPTSBUQUJfVEVTVEVTX1NFVF9PUEVSQVRPUlNfMDIgVDIKICAgICBPUkRFUiBCWSAxCgogICAgLS0gRlVOQ0lPTkEKICAgIFNFTEVDVCBUMS5JRF9UQUIsIFQxLkRFU0NfVEFCLCBUMS5EQVRBX1RBQiAKICAgICAgIEZST00gVEFCX1RFU1RFU19TRVRfT1BFUkFUT1JTXzAxIFQxCiAgICBVTklPTiAKICAgIFNFTEVDVCBUMi5JRF9UQUIsIFQyLkRFU0NfVEFCLCBUMi5EQVRBX1RBQiAKICAgICAgIEZST00gVEFCX1RFU1RFU19TRVRfT1BFUkFUT1JTXzAyIFQyCiAgICBPUkRFUiBCWSBJRF9UQUIgLS1zZW0gbyBhbGlhcyBkYSBjb2x1bmEsIGZ1bmNpb25hCgogICAgIC0tIE7Dg08gRlVOQ0lPTkEKICAgICBTRUxFQ1QgVDEuSURfVEFCICJJRF9UQUIiLCBUMS5ERVNDX1RBQiwgVDEuREFUQV9UQUIgCiAgICAgICAgRlJPTSBUQUJfVEVTVEVTX1NFVF9PUEVSQVRPUlNfMDEgVDEKICAgICBVTklPTiAKICAgICBTRUxFQ1QgVDIuSURfVEFCLCBUMi5ERVNDX1RBQiwgVDIuREFUQV9UQUIgCiAgICAgICAgRlJPTSBUQUJfVEVTVEVTX1NFVF9PUEVSQVRPUlNfMDIgVDIKICAgICBPUkRFUiBCWSBUMS5EQVRBX1RBQiAtLWNvbSBvIGFsaWFzIGRhIGNvbHVuYSwgbsOjbyBmdW5jaW9uYQ==” hover_enabled=”0″]ICAgIC0tIEZVTkNJT05BCiAgICAgU0VMRUNUIFQxLklEX1RBQiAiSURfVEFCIiwgVDEuREVTQ19UQUIsIFQxLkRBVEFfVEFCIAogICAgICAgIEZST00gVEFCX1RFU1RFU19TRVRfT1BFUkFUT1JTXzAxIFQxCiAgICAgVU5JT04gCiAgICAgU0VMRUNUIFQyLklEX1RBQiwgVDIuREVTQ19UQUIsIFQyLkRBVEFfVEFCIAogICAgICAgIEZST00gVEFCX1RFU1RFU19TRVRfT1BFUkFUT1JTXzAyIFQyCiAgICAgT1JERVIgQlkgIklEX1RBQiIKCiAgICAgLS0gRlVOQ0lPTkEKICAgICBTRUxFQ1QgVDEuSURfVEFCICJJRF9UQUIiLCBUMS5ERVNDX1RBQiwgVDEuREFUQV9UQUIgCiAgICAgICAgRlJPTSBUQUJfVEVTVEVTX1NFVF9PUEVSQVRPUlNfMDEgVDEKICAgICBVTklPTiAKICAgICBTRUxFQ1QgVDIuSURfVEFCLCBUMi5ERVNDX1RBQiwgVDIuREFUQV9UQUIgCiAgICAgICAgRlJPTSBUQUJfVEVTVEVTX1NFVF9PUEVSQVRPUlNfMDIgVDIKICAgICBPUkRFUiBCWSAxCgogICAgLS0gRlVOQ0lPTkEKICAgIFNFTEVDVCBUMS5JRF9UQUIsIFQxLkRFU0NfVEFCLCBUMS5EQVRBX1RBQiAKICAgICAgIEZST00gVEFCX1RFU1RFU19TRVRfT1BFUkFUT1JTXzAxIFQxCiAgICBVTklPTiAKICAgIFNFTEVDVCBUMi5JRF9UQUIsIFQyLkRFU0NfVEFCLCBUMi5EQVRBX1RBQiAKICAgICAgIEZST00gVEFCX1RFU1RFU19TRVRfT1BFUkFUT1JTXzAyIFQyCiAgICBPUkRFUiBCWSBJRF9UQUIgLS1zZW0gbyBhbGlhcyBkYSBjb2x1bmEsIGZ1bmNpb25hCgogICAgIC0tIE7Dg08gRlVOQ0lPTkEKICAgICBTRUxFQ1QgVDEuSURfVEFCICJJRF9UQUIiLCBUMS5ERVNDX1RBQiwgVDEuREFUQV9UQUIgCiAgICAgICAgRlJPTSBUQUJfVEVTVEVTX1NFVF9PUEVSQVRPUlNfMDEgVDEKICAgICBVTklPTiAKICAgICBTRUxFQ1QgVDIuSURfVEFCLCBUMi5ERVNDX1RBQiwgVDIuREFUQV9UQUIgCiAgICAgICAgRlJPTSBUQUJfVEVTVEVTX1NFVF9PUEVSQVRPUlNfMDIgVDIKICAgICBPUkRFUiBCWSBUMS5EQVRBX1RBQiAtLWNvbSBvIGFsaWFzIGRhIGNvbHVuYSwgbsOjbyBmdW5jaW9uYQ==[/et_pb_dmb_code_snippet]

Bem… é isso pessoal. Até a próxima.

Keep Querying.