MySQL生成的列具有NULL值

时间:2017-11-04 12:11:10

标签: mysql

例如,我有3列,sideasidebsidec。我正在做的是:

CREATE TABLE triangle (
  sidea DOUBLE,
  sideb DOUBLE,
  sidec DOUBLE AS (sidea - sideb)
);

但对于sidea,某些单元格包含NULL值。以上代码的结果是NULL-(some number)=(some number)

如果sidecNULL中的任何单元格包含sidea,任何人都知道如何让sideb成为NULL

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以将CREATE TABLE脚本修改为以下内容:

在第三列中,您可能需要像CASE WHEN sidea IS Null OR sideb IS Null THEN Null ELSE (sidea-sideb)

一样进行检查

最后,您的CREATE TABLE脚本将更改为:

CREATE TABLE triangle (
sidea DOUBLE,
sideb DOUBLE,
sidec DOUBLE AS (CASE WHEN sidea IS Null OR sideb IS Null THEN Null ELSE (sidea-sideb) END)
);

CASE语句允许您分配值NULL,如果其中一个列值(即sideasideb为NULL,则指定sidec值NULL)。

希望这有帮助!