Pokusím se to vysvětlit co nejjednodušeji, aby to bylo snadné pochopit :
Předpokládejme, že máte tabulku Vendor
nastavit něco takového:
create table Vendor (AccountTerms int, ulARAgeing varchar(50));
A pak vložíme několik vzorových hodnot pro oba sloupce v Vendor
tabulka:
insert into Vendor values
(0,'Test'),
(1,'Test1'),
(2,'Test2');
Dále napíšeme aktualizační prohlášení k aktualizaci vašeho ulARAgeing
na základě hodnot v AccountTerms
sloupec ve stejné tabulce:
update vendor
set ulARAgeing = (CASE
WHEN AccountTerms = 0
THEN 'Current'
WHEN AccountTerms = 1
THEN '30 Days'
WHEN AccountTerms = 2
THEN '60 Days'
END);
CASE WHEN
je podobné použití IF..ELSE
ve většině ostatních programovacích jazyků. Zde tedy budeme aktualizovat stávající ulARAgeing
hodnotu na jinou hodnotu řetězce na základě podmínky v příkazu case when. Takže pro např. pokud AccountTerms = 0
poté aktualizujeme hodnotu pro ulARAgeing
na „Aktuální“ a tak dále.
Chcete-li zkontrolovat, zda výše uvedený příkaz fungoval správně, stačí spustit příkaz aktualizace výše a poté znovu vybrat z tabulky:
select * from Vendor;
Výsledek:
+--------------+-----------------+
| AccountTerms | ulARAgeing |
+--------------+-----------------+
| 0 | Current |
| 1 | 30 Days |
| 2 | 60 Days |
+--------------+-----------------+