Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle:Union all Abfrage 1 und Abfrage 2 möchten einige Zeilen abziehen, wenn Abfrage 1 Zeilendaten enthält

So wie es jetzt ist, müssen Sie zuerst Namen (und Telefonnummern) in Zeilen aufteilen und dann Mengenoperatoren anwenden (UNION , MINUS ) zu solchen Daten.

Das bedeutet, dass Sie WM_CONCAT nicht verwenden sollten überhaupt; zumindest nicht am Anfang, denn

  • Zuerst verketten Sie Daten
  • dann müssten Sie es wieder in Zeilen aufteilen
  • UNION / MINUS Sätze

Unnütze Arbeit in den ersten 2 Schritten.

Ich würde Ihnen UNION vorschlagen / MINUS Daten zuerst, dann aggregieren Sie sie mit WM_CONCAT . Übrigens, welche Datenbankversion verwendest du? WM_CONCAT ist a) undokumentiert, b) existiert nicht einmal in den neuesten Oracle-Datenbankversionen, also wechseln Sie lieber zu LISTAGG , wenn möglich.