0

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

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

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

运行结果

4

1 回答 1

1

你的错误是什么?

如果 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;
于 2016-11-26T09:48:26.360 回答