Oracle
 sql >> база данни >  >> RDS >> Oracle

Дълбока актуализация на Oracle SQL

MERGE е правилен начин.

Има Bag:items=Item1, Item2

Има BagInDB:bag_id =1items=Item1,Item3

Така че трябва да актуализираме Item1, да добавим Item2 и да изтрием Item3

Първа стъпка (присъединяване):

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

ще ви даде

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

2-ра стъпка (обединяване)

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ИЗЧИСТВАНЕ НА ЕКРАНА - Пряк път за Oracle SQL Developer?

  2. Може ли времето за изчакване за заключване на обект по подразбиране на Oracle да бъде променено?

  3. Върнете резултатите от заявката като списък, разделен със запетая в Oracle

  4. Кой измисли термина възел DIANA и как разбра, че 6 000 000 LOC са приблизително 67108864 (2**26) възела DIANA?

  5. Как да актуализирате ID в таблица 2 от таблица 1 в Oracle sql