sql >> Base de Datos >  >> RDS >> Oracle

Oracle:unir todas las consultas 1 y 2 quiere restar algunas filas si la consulta 1 tiene datos de fila

Tal como está ahora, primero tendrá que dividir nombres (y teléfonos) en filas y luego aplicar operadores de conjuntos (UNION , MINUS ) a tales datos.

Lo que significa que no deberías usar WM_CONCAT en absoluto; al menos, no al principio, porque

  • primero concatenas los datos
  • entonces tendrías que volver a dividirlo en filas
  • UNION / MINUS conjuntos

Haciendo un trabajo inútil en los primeros 2 pasos.

Te sugiero que UNION / MINUS datos primero, luego agregarlos usando WM_CONCAT . Por cierto, ¿qué versión de base de datos usas? WM_CONCAT es a) indocumentado, b) ni siquiera existe en las últimas versiones de la base de datos de Oracle, por lo que preferiría cambiar a LISTAGG , si es posible.