Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle:união de todas as consultas 1 e 2 querem menos algumas linhas se a consulta 1 tiver rowdata


Do jeito que está agora, primeiro você terá que dividir nomes (e telefones) em linhas e, em seguida, aplicar operadores de conjunto (UNION , MINUS ) a esses dados.

O que significa que você não deve usar WM_CONCAT de forma alguma; pelo menos, não no início, porque
  • primeiro você concatena os dados
  • você teria que dividi-lo novamente em linhas
  • UNION / MINUS conjuntos

Fazendo trabalho inútil nos primeiros 2 passos.

Eu sugiro que você UNION / MINUS dados primeiro, depois agregue-os usando WM_CONCAT . A propósito, qual versão do banco de dados você usa? WM_CONCAT é a) não documentado, b) nem existe nas versões mais recentes do banco de dados Oracle, então você prefere mudar para LISTAGG , se possível.