编辑:我正确使用CASE吗?
对不起,我没有在开始时澄清。 CompanyType是SMALLINT,不是null,TotalLicenses为int,空
基本上我只是想检查TotalLicenses > 0 if C.CompanyType != 4
我看着几个参考指南和教程,但我无法找到一个证实,我使用CASE当我打算在这个例子中。
我试图在Expiration大于或等于Today's date时将“Purchased”列更新为1,DemoLicense等于0,如果公司类型不是4,TotalLicenses大于0。 4也可以是0
update WebCatalog.Published.DemoTracking
set Purchased = 1
from WebCatalog.Published.Company C
inner join WebCatalog.Published.RCompany RC
on C.RCompany = RC.Link
inner join WebCatalog.Published.DemoTracking DT
on C.PKey = DT.CompanyPKey and DT.Purchased = 0
where RC.Expiration >= Cast(GETDATE() as Date) and RC.DemoLicense = 0
and C.TotalLicenses >
Case
when C.CompanyType != 4 THEN 0
END
所以,如果'C.CompanyType'等于'4' ,更新应该完成? –
无论C.CompanyType是什么,都应该进行更新,但如果公司类型不是4,则只应在TotalLicenses大于0时执行更新。 – Adam