首页 > 解决方案 > 在 ISNULL Conditional 中包装 Conditional | mysql

问题描述

目前,我的 SELECT 语句中有以下条件:

  IF ((`date1` IS NOT NULL AND `date1` <> 0), DATE_FORMAT(`date1`, "%M %D %Y"), 
  DATE_FORMAT(`date2`, "%M %D %Y")) AS finaldate

但是在某些条件下,而不是为条件的结果呈现日期finaldate的是NULL。是否可以将此条件包装在ISNULL条件中?

标签: mysql

解决方案


如果要将 a 转换NULL为另一个值,可以使用COALESCE(). 例如:

COALESCE(<my_expression>, ' ')

在这种情况下,如果 的值为<my_expression>null,则将其呈现为空格。

在你的情况下,这可能会变成这样:

COALESCE(
  IF ((`date1` IS NOT NULL AND `date1` <> 0), DATE_FORMAT(`date1`, "%M %D %Y"), 
  DATE_FORMAT(`date2`, "%M %D %Y"),
  ' '
) AS finaldate

推荐阅读