当日期为 Null return 另一个值? - DB2 数据库

When date is Null return another value? - DB2 database

我正在尝试编写一个 returns 结果为空的特定日期的查询。

我的尝试:

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

我收到错误 DB2 SQL 错误:

SQLCODE=-199, SQLSTATE=42601, SQLERRMC=AS;END OVER CONCAT || / - + AT * YEAR YEARS MONTH MONTHS DAY DAYS

这是为什么?

您缺少关键字 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 函数。 trim(null)null。另外,这假设您的字段是 char 或 varchar。如果是日期,则不能使用 trim。另外,请确保您的默认值是 db2 中的有效日期。

如果您正在检查 NULL 值,则不需要 trim()。所以,考虑这样的事情:

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

您的问题实际上是为什么您会收到该错误。好吧,基本上它列出了一些可能出现在“9999-12-31”和接下来的任何内容之间的标记。其中之一是 END(尽管缺少 ELSE 的可能性)。