Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle:połącz wszystkie zapytania 1 i zapytanie 2, aby odjąć niektóre wiersze, jeśli zapytanie 1 ma rowdata

Tak jak teraz, musisz najpierw podzielić nazwiska (i telefony) na wiersze, a następnie zastosować operatory zestawów (UNION , MINUS ) do takich danych.

Co oznacza, że ​​nie powinieneś używać WM_CONCAT w ogóle; przynajmniej nie na początku, ponieważ

  • najpierw łączysz dane
  • wtedy musiałbyś podzielić go z powrotem na rzędy
  • UNION / MINUS zestawy

Wykonywanie bezużytecznej pracy w pierwszych 2 krokach.

Proponuję UNION / MINUS najpierw dane, potem agregować je za pomocą WM_CONCAT . Przy okazji, jakiej wersji bazy danych używasz? WM_CONCAT jest a) nieudokumentowane, b) nie istnieje nawet w najnowszych wersjach bazy danych Oracle, więc wolisz przełączyć się na LISTAGG , jeśli to możliwe.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. upuść przestrzeń tabel, jeśli nie istnieje

  2. Przekaż tablicę jako parametr wejściowy do procedury składowanej Oracle za pomocą prostego wywołania jdbc

  3. ORA-01779:nie można modyfikować kolumny, która mapuje do tabeli niezachowanej kluczem

  4. Jak używać Timestamp_to_scn i Scn_to_timestamp w Oracle?

  5. Automatyczne wymuszanie maksymalnego rozmiaru tabeli bazy danych przez usunięcie starych wierszy