ŘÍZENÍ TOKU U UPDATE   otázka

SQL, Databáze

Dobrý den, trochu si lámu hlavu s tím, jak určit hodnotu, na jakou se má sloupec aktualizovat. Základní syntaxe obojího (jak UPDATE, tak IF) je mi snad jasná, jen nevím jak to zkloubit.

Todle mi funguje

UPDATE tabulka
SET sloupec1 = 8,
sloupec2 = 
(
SELECT sloupecX 
FROM tabulkaY 
WHERE nějaká_podmníka
)
WHERE nějaká_podmínka_pro_celý_update

ale pokud chci u toho sloupce2 určit v závislosti na nějaké podmínce, na jakou hodnotu se má updatovat, kam mám nacpat blok s IF? takto je to evidentně špatně:

SET sloupec1 = 8,
sloupec2 =
IF něco > něco
BEGIN
(
SELECT sloupecX 
FROM tabulkaY 
WHERE nějaká_podmníka
)
ELSE
(
SELECT sloupecY 
FROM tabulkaX 
WHERE nějaká_podmníka
)
END

nahlásit spamnahlásit spam 0 odpovědětodpovědět

jo a ještě mi tam chybí před else end a předem díky za případné odpovědi

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Správně to má být takto:

UPDATE tabulka

SET sloupec1 = 8,

sloupec2 =

(CASE WHEN něco > něco THEN

(

SELECT sloupecX

FROM tabulkaY

WHERE nějaká_podmníka

)

ELSE

(

SELECT sloupecY

FROM tabulkaX

WHERE nějaká_podmníka

)

END)

WHERE nějaká_podmínka_pro_celý_update

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dobře, díky, zkusím...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback