Új hozzászólás Aktív témák
-
nyunyu
félisten
válasz
RedHarlow
#4712
üzenetére
Ezt a Teradata féle joinnal bővített UPDATE szintaxist semelyik másik DB kezelő nem ismeri, nem tudsz így másik tábla alapján updatelni.
Oracle elég körülményesen tud hasonlót, SET+WHERE mögé írt alselecttel, de annak a pontos szintaxisára nem emlékszem, de arra igen, hogy amihez nem talál értéket, ott szimplán NULLlal felülírja a többi sort.

Valami ilyesmi lehetett:
UPDATE t1
SET t1.column=(SELECT column FROM t2 WHERE t2.id=t1.id)
WHERE t1.id IN (SELECT id FROM t2);(Teradata csak a joinnal megtalált sorokat updateli, többit békén hagyja!)
Legtisztább megoldás erre a szabványos MERGE utasítás:
MERGE t1
USING (SELECT id,
column
FROM t2) t2
ON (t2.id = t1.id)
WHEN MATCHED
THEN UPDATE SET t1.column = t2.column;Hmm, még alselect se kell az USING mögé, direktben is mehet a t2, ha a joinon kívül nem kell semmi bonyolultat csinálni vele:
MERGE t1
USING t2
ON (t2.id = t1.id)
WHEN MATCHED
THEN UPDATE SET t1.column = t2.column;
Új hozzászólás Aktív témák
- Milyen légkondit a lakásba?
- AMD GPU-k jövője - amit tudni vélünk
- Parkside szerszám kibeszélő
- Milyen okostelefont vegyek?
- Milyen notebookot vegyek?
- Programozás topic
- Kormányok / autós szimulátorok topikja
- Synology NAS
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Mibe tegyem a megtakarításaimat?
- További aktív témák...
- Apple iPhone 13 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó Xiaomi Redmi Note 10S 6/128GB Acél szürke / 12 hó jótállás
- Beszámítás! Apple iPad Pro 13 M5 1TB Wifi tablet garanciával hibátlan működéssel
- Új és újszerű 17-18 Gamer, irodai, üzleti készülékek nagyon kedvező alkalmi áron Garanciával!
- BESZÁMÍTÁS! MSI B760M i7 12700 16GB DDR5 512GB SSD RTX 3080 10GB Lian LI LANCOOL 207 GIGABYTE 750W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


