当date为Null时返回另一个值? - DB2数据库

时间:2016-01-04 19:39:49

标签: sql database db2

我正在尝试编写一个查询,当结果为null时返回特定日期。

我的尝试:

CASE WHEN TRIM(t1.COLUMN_NAME) is null THEN '9999-12-31'

我收到错误DB2 SQL Error:

  

SQLCODE = -199,SQLSTATE = 42601,SQLERRMC = AS;结束CONCAT || / - + AT   *每年每月一个月

为什么会这样?

2 个答案:

答案 0 :(得分:3)

如果您要检查trim()值,则不需要NULL。所以,考虑一下:

SELECT COALESCE(t1.COLUMN_NAME, '9999-12-31')

您的问题实际上是为什么您收到了该错误。好吧,基本上它列出了一些可能出现在' 9999-12-31'之间的令牌。以及接下来的一切。其中一个是END(虽然它可能缺少ELSE)。

答案 1 :(得分:2)

您缺少关键字end

这样:

CASE WHEN TRIM(t1.COLUMN_NAME) is null THEN '9999-12-31'

应该是这样的:

CASE WHEN TRIM(t1.COLUMN_NAME) is null THEN '9999-12-31' else t1.column_name end

另外,您不需要修剪功能。 trim(null)null。另外,这假设您的字段是char或varchar。如果是日期,则无法使用trim。另外,请确保您的默认值是db2中的有效日期。