SQL Server:计算列DATEDIFF子句

问题描述 投票:1回答:2

我正在尝试执行以下操作:我有3列(Control_OpenDateControl_Record AgeControl_Stage2)。插入该行后,它将填充Control_OpenDate(01/27/2013)和Control_RecordAge(计算列,请参见公式)。

(datediff(day, [Control_OpenDate], getdate()))

提供最新日期。

一切工作正常,但只要不填充列IF,我想像Control_Stage2条件一样向计算列添加,不要计算或添加文本...

如何在上述公式中添加WHERE语句?

注意:我直接在列属性中输入这样的公式,我知道有些查询可以做到这一点,但是有一种方法可以通过公式来完成它。

sql sql-server formula datediff
2个回答
4
投票

这可以使用CASE语句完成,如here所示。

您的逻辑将如下所示:

(CASE 
    WHEN [Control_Stage2] IS NULL THEN NULL -- or -1 or what you like
    ELSE datediff(day,[Control_OpenDate],getdate())
END)

0
投票

也可以写成三元语句(IIF

iif([Control_Stage2] is null, null, datediff(day,[Control_OpenDate],getdate()))
© www.soinside.com 2019 - 2024. All rights reserved.