Vou tentar explicar isso de uma maneira simples, tanto quanto possível, para que seja fácil de entender:
Vamos supor que você tenha uma tabela
Vendor
configurar algo assim:create table Vendor (AccountTerms int, ulARAgeing varchar(50));
E, em seguida, inseriremos alguns valores de amostra para ambas as colunas em
Vendor
tabela:insert into Vendor values
(0,'Test'),
(1,'Test1'),
(2,'Test2');
Em seguida, escreveremos uma instrução de atualização para atualizar seu
ulARAgeing
coluna com base nos valores em AccountTerms
coluna na mesma tabela: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
é semelhante a usar IF..ELSE
declaração na maioria das outras linguagens de programação. Então, aqui estaremos atualizando o ulARAgeing
existente value para um valor de string diferente com base na condição na instrução case when. Assim, por ex. se os AccountTerms = 0
então atualizaremos o valor para ulARAgeing
para 'Atual' e assim por diante. Para verificar se a instrução acima funcionou corretamente, basta executar a instrução de atualização acima e selecionar na tabela novamente:
select * from Vendor;
Resultado:
+--------------+-----------------+
| AccountTerms | ulARAgeing |
+--------------+-----------------+
| 0 | Current |
| 1 | 30 Days |
| 2 | 60 Days |
+--------------+-----------------+
Demonstração do SQL Fiddle