在 CASE 表达式中将 DateTime 变量设置为 NULL

Setting DateTime variable as NULL in CASE expression

我有两个 DateTime 列 Date1Date2。如果填充 Date1,则 Date2 携带相同的值,否则 Date2 携带其自己的唯一值。

我想做的是,如果Date1<>NULLDate2=NULL。 我在 SELECT 语句中使用 CASE 语句,该语句也获取其他值。但它并没有解决我的问题。

CASE    
WHEN (DATE1<>NULL AND DATE2<>NULL)
THEN DATE2=NULL
ELSE DATE2
END

感谢帮助! 谢谢

你应该使用 IS NULL / IS NOT NULL 进行比较

如果不使用赋值作为 DATE2 = NULL .. 仅使用 NULL

CASE WHEN (DATE1 IS NOT NULL AND DATE2 IS NOT NULL) THEN  NULL ELSE DATE2 END

使用 COALESCE 函数,它 returns 第一个非空参数,这正是您要执行的操作:

SELECT COALESCE(DATE1, DATE2) AS DATE2