当日期为 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
的可能性)。
我正在尝试编写一个 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
的可能性)。