合并样本数据库不起作用

coalesce on sample database not work

这里我使用的是DB2的SAMPLE数据库

我正在尝试使用合并来更改 EMPLOYEE table 的 MIDINIT 列中的空值,但在我 运行 代码后我仍然得到空值结果。

SELECT COALESCE (MIDINIT, 'XX') AS MIDINIT
FROM EMPLOYEE;

run result

你的错误是什么?

如果 MIDINIT 不是 char 或 varchar(例如整数),您的合并将整数值替换为 char 值,系统 SQL 无法选择类型

如果 MIDINIT 不是 char 或 varchar,您应该是

SELECT COALESCE (cast(MIDINIT as varchar(200)), 'XX') AS MIDINIT
FROM EMPLOYEE;

或者如果 MIDINIT 是数字

SELECT COALESCE (MIDINIT, 0) AS MIDINIT
FROM EMPLOYEE;

如果需要,您可以使用 ifnull 函数替换 coalesce(如果 MIDINIT 是 char 或 varchar):

SELECT ifnull(MIDINIT, 'XX') AS MIDINIT
FROM EMPLOYEE;