Hirdetés
- Google Pixel 10a – évismétlés
- One mobilszolgáltatások
- Fotók, videók mobillal
- Okosóra és okoskiegészítő topik
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Hamarosan körbefotózza a Google a Balatont
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Milyen okostelefont vegyek?
- iPhone topik
Ú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
- Apple iMac 21,5" 2015 Late / 8GB DDR3 / 1TB HDD / Bill+Egér 6 hó garancia, számlával!
- HIBÁTLAN iPhone 12 mini 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3818
- BESZÁMÍTÁS! ASUS H110M i5 7500 8GB DDR4 240GB SSD GTX 1050Ti 4GB Cooler Master ATX DeepCool 400W
- Telefon felvásárlás!! Xiaomi Redmi Note 10, Xiaomi Redmi Note 10s, Xiaomi Redmi Note 10 Pro
- Eredeti Lenovo 300W töltők - ADL300SDC3A
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


