【发布时间】:2019-06-22 14:35:24
【问题描述】:
我正在尝试将 column1 乘以 column2;基于column2中是否有值。如果 column2 中有值,则答案将放在 column3 中。我正在尝试使用 WITH 和公用表表达式。
我搜遍了论坛,好像没有类似的CTE问题。
WITH cte_apfc AS(
SELECT SUM(CAST("column1" AS numeric(4,2))) * SUM(CAST("column2" AS numeric(4,2)))
FROM table1
)
UPDATE table1
SET "column3" = cte_apfc
FROM cte_apfc
WHERE "column2" IS NOT NULL;
这是我目前收到的错误,我不确定如何解决。
错误:列“column3”是数字类型,但表达式是记录类型 第 13 行:SET "column3" = cte_apfc ^ 提示:您需要重写或强制转换表达式。
【问题讨论】:
-
为什么要转换成数字?这些列不是定义为数字还是整数吗?
-
感谢您提出质疑 - 您帮助我找到了正确的解决方案。它是如此简单,让我大吃一惊:D
标签: postgresql