Curr
是指当前的政策记录,previous
是指之前的政策记录。
我正试图找出使用IS NOT NULL的方法
更新同一层工作正常。但对于少数帐户,前一个或当前的AttachmentUSD
为NULL,我希望它们转到“更新未知”类别而不是“更新不同图层”
CASE
WHEN curr.LimitUSD = previous.LimitUSD
AND curr.AttachmentUSD = previous.AttachmentUSD
THEN 'Renewed Same Layer'
WHEN curr.LimitUSD <> previous.LimitUSD
OR curr.AttachmentUSD <> previous.AttachmentUSD
THEN 'Renewed Different Layer'
ELSE 'Renewed Unknown'
END AS 'Renewal Layer',
答案 0 :(得分:1)
我认为这是你所期望的:
case when curr.LimitUSD = previous.LimitUSD and curr.AttachmentUSD = previous.AttachmentUSD then 'Renewed Same Layer'
when (curr.LimitUSD <> previous.LimitUSD OR curr.AttachmentUSD <> previous.AttachmentUSD) AND curr.LimitUSD IS NOT NULL then 'Renewed Different Layer'
else 'Renewed Unknown'
end as 'Renewal Layer',
目前,当您有查询时,将永远不会达到else,因为第一个条件恰好与第二个条件相反
答案 1 :(得分:-1)
这是一个很高的级别,因为你正在寻找使用IS NOT NULL的地方。
使用IS NOT NULL,因为NULL不是SQL Server中的值。它是未知的,因此无法使用等式检查进行比较。这是IS NOT NULL / IS NULL的来源。它不等于0,false或空白/空格。
Dim gen1 as Date
gen1 = CVDate("1/1/" & Year(Date))