在 CASE 表达式中将 DateTime 变量设置为 NULL
Setting DateTime variable as NULL in CASE expression
我有两个 DateTime 列 Date1
和 Date2
。如果填充 Date1
,则 Date2
携带相同的值,否则 Date2
携带其自己的唯一值。
我想做的是,如果Date1<>NULL
,Date2=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
我有两个 DateTime 列 Date1
和 Date2
。如果填充 Date1
,则 Date2
携带相同的值,否则 Date2
携带其自己的唯一值。
我想做的是,如果Date1<>NULL
,Date2=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