sql >> Databáze >  >> RDS >> Oracle

Oracle:sjednocení všech dotazů 1 a dotazu 2 chtějí odečíst některé řádky, pokud má dotaz 1 rowdata

Jak je to nyní, budete muset nejprve rozdělit jména (a telefony) do řádků a poté použít operátory sady (UNION , MINUS ) na taková data.

Což znamená, že byste neměli používat WM_CONCAT vůbec; alespoň ne na začátku, protože

  • nejprve zřetězíte data
  • pak byste jej museli rozdělit zpět do řádků
  • UNION / MINUS sady

Dělat zbytečnou práci v prvních 2 krocích.

Navrhoval bych vám UNION / MINUS nejprve data, pak agregovat je pomocí WM_CONCAT . Mimochodem, jakou verzi databáze používáte? WM_CONCAT je a) nezdokumentovaný, b) neexistuje ani v nejnovějších verzích databáze Oracle, takže byste raději přešli na LISTAGG , pokud je to možné.




  1. Jak funguje krok zástupného znaku JSONPath (**) v MariaDB

  2. Jak spojit dvě tabulky v MySQL

  3. jak zabránit duplikátům s dotazem na vnitřní spojení (Postgres)

  4. Neaktualizuje se SQL databáze