我有一个名为Vendor的表,在此表中有一个名为AccountTerms的列,该列仅显示一个值(即0、1、2、3),依此类推。我也有一个要使用(ulARAgeing)的列,以反映该值的含义,例如:
ulARAgeing
0: Current 1: 30 Days 2: 60 Days
等等…
我需要的是一个脚本,它将查看AccountTerms中的值,然后将更新ulARAgeing以显示上面显示的单词值。我该怎么做呢?
我将尝试以一种尽可能简单的方式来解释这一点,以便于理解:
假设您有一个这样的表Vendor设置:
Vendor
create table Vendor (AccountTerms int, ulARAgeing varchar(50));
然后,我们将为表中的两列插入一些样本值Vendor:
insert into Vendor values (0,'Test'), (1,'Test1'), (2,'Test2');
接下来,我们将编写一条update语句,以ulARAgeing根据AccountTerms同一表中列中的值更新您的列:
AccountTerms
update vendor set ulARAgeing = (CASE WHEN AccountTerms = 0 THEN 'Current' WHEN AccountTerms = 1 THEN '30 Days' WHEN AccountTerms = 2 THEN '60 Days' END);
CASEWHEN与IF..ELSE大多数其他编程语言中的using语句相似。因此,这里我们将ulARAgeing根据when语句的情况将现有值更新为不同的字符串值。因此,例如对于if,AccountTerms = 0我们将其值更新为ulARAgeing“ Current”,依此类推。
CASEWHEN
IF..ELSE
AccountTerms = 0
要检查上面的语句是否正常工作,您只需要运行上面的update语句,然后再次从表中选择:
select * from Vendor;
结果:
+--------------+-----------------+ | AccountTerms | ulARAgeing | +--------------+-----------------+ | 0 | Current | | 1 | 30 Days | | 2 | 60 Days | +--------------+-----------------+
**SQL Fiddle Demo**