Hirdetés
- Az év utolsó napján előbújt pár Galaxy S26 dummy
- Eddigi legjobb DxOMark helyezésével zárta 2025-öt a Vivo
- Apple iPhone 16 Pro - rutinvizsga
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- iPhone topik
- Redmi Note 14 5G - jól sikerült az alapmodell
- Amazfit Active 2 NFC - jó kör
- One mobilszolgáltatások
- Fotók, videók mobillal
- Apple Watch Sport - ez is csak egy okosóra
Ú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
- Eladó igazi ritkaság! LG G7 Thinq 4/64GB / 12 hónap jótállással!
- Honor Pad X8 / 4/64GB / Wi-Fi / 12 Hó Garancia
- Apple iPhone 14 128GB,Átlagos,Adatkabel,12 hónap garanciával
- BESZÁMÍTÁS! MSI MAG B550 R7 5700X 32GB DDR4 1TB SSD RX 9070 XT 16GB NZXT H440 fehér GIGABYTE 750W
- Samsung Galaxy A26 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest



