編集:
申し訳ありませんが、最初に明確にしませんでした。CompanyType は smallint、null ではなく、TotalLicenses は int、null です
基本的に私はそれを確認したいだけですTotalLicenses > 0 if C.CompanyType != 4
いくつかのリファレンス ガイドとチュートリアルを見ましたが、この例で意図したとおりに CASE WHEN を使用していることを確認できるものは見つかりませんでした。
有効期限が今日の日付以上で、DemoLicense が 0 に等しく、会社の種類が 4 でない場合は TotalLicenses が 0 より大きい場合、「購入済み」列を 1 に更新しようとしています。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