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

Hluboká aktualizace Oracle SQL

MERGE je způsob, jak jít.

Existuje Bag:items=Item1, Item2

Existuje BagInDB:bag_id =1items=Item1,Item3

Musíme tedy aktualizovat Item1, přidat Item2 a odstranit Item3

1. krok (připojit se):

select * from bag full outer join (select * from bagInDB where bag_id = 1)

dá vám to

bag_itemName bagInDb_itemName
------------ ----------------
Item1        Item1
Item2        null
null         Item3

2. krok (sloučení)

merge into baginDB b
using(query above) q on b.bag_id = 1 and b.itemName = q.bagInDb_itemName
when matched then
delete where q.bag_itemName is null
<rest of the conditions>



  1. Funkce NLS_CHARSET_DECL_LEN() v Oracle

  2. PHP &mySQL:Kdy přesně používat htmlentity?

  3. SQL dotaz nezobrazuje očekávaný výsledek

  4. MySQL:Všechny části primárního klíče nesmí být NULL; pokud potřebujete v klíči hodnotu NULL, použijte místo toho UNIQUE