小编caf*_*ddt的帖子

IS NULL时的SQL Server Case语句

我正在尝试在SQL服务器中执行IF语句类型函数.

如果字段中有NULL,我希望它从其中一个表中获取一个字段并添加10天.

如果可能的话,创建另一个列并添加30天.

SELECT DISTINCT
    B.[ID],
    MAX(A.[START DATE]),
    B.[STAT],
    C.[POST DATE],
    CASE
          WHEN (C.[POST DATE] BETWEEN C.[EVENT DATE]+10 AND C.[EVENT DATE]+30) THEN 'GOOD'
          END AS [BETTER VISIT],
    CASE
          WHEN B.[STAT] IS NULL THEN (C.[EVENT DATE]+10)
          ELSE '-'
          END AS [DATE]
FROM 
    #TEMP1 A
    FULL OUTER JOIN #TEMP2 B
    ON A.[ID]=B.[ID]
    FULL OUTER JOIN #TEMP3 C
    ON A.[ID]=C.[ID]
GROUP BY
    B.[ID],
    B.[STAT],
    C.[POST DATE],
    C.[EVENT DATE]
ORDER BY
    A.[START DATE] DESC
Run Code Online (Sandbox Code Playgroud)

结果看起来有点像:

    ID  START DATE   STAT    POST DATE    BETTER VISIT    DATE …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

52
推荐指数
6
解决办法
32万
查看次数

标签 统计

sql ×1

sql-server ×1

sql-server-2008 ×1