如何解决:AND的参数必须为布尔型,而不是数字型

时间:2019-06-25 11:11:09

标签: postgresql

我正在尝试创建一个摘要列(column4),如果它们不为null,并且column3为null,它将包含column1,column2的总值。理论很简单,但是我无法使它起作用。

我已经搜索了堆栈,但是找不到专门解决此问题的答案。

UPDATE table1
SET "column4" = "column1" + "column2"
WHERE "column1" AND "column2" IS NOT NULL 
AND "column3" IS NULL;
  

错误:AND的参数必须为布尔型,而不是数字型
  第4行:“ column1”和“ column2 ...”在哪里

1 个答案:

答案 0 :(得分:1)

您必须分别为列重复IS NOT NULL断言:

UPDATE table1
SET column4 = column1 + column2
WHERE column1 IS NOT NULL AND column2 IS NOT NULL AND column3 IS NULL;

您可以尝试通过识别以下内容来缩短上述时间:为了使column1column2都不为NULL,这两列的总和也必须不为{{1 }}:

NULL