我想用行完整数据表数据进行更新,但是如何?
看看我想做什么:
此代码仅用于显示行数的和数据,但不能使用NULL值。
−32768
但我想用所有和数据更新我的特定列。
我试过这段代码却失败了:
32767
此代码也尝试了我:
select
sum(tc6671 + tf6671 + pc6671 + pf6671 + tc8572 + tf8572 + pc8572 + pf8572 +
tc6672 + tf6672 + tc6673 + tf6673 + pc6673 + pf6673 + pc6674 + pf6674 + tc5852 + tf5852 +
tc5853 + tf5853) as Test
from
cmt_7th;
答案 0 :(得分:0)
使用coalesce来处理空值,而不是tc6671 + tf6671。
赞coalesce(tc6671,0)+coalesce(tf6671,0)+...
因此,您的更新声明将类似于
UPDATE c
SET c.total = coalesce(c.tc6671,0) + coalesce(c.tf6671,0) + coalesce(c.pc6671,0)
+ coalesce(c.pf6671,0) + coalesce(c.tc8572,0) + coalesce(c.tf8572,0)
+ coalesce(c.pc8572,0) + coalesce(c.pf8572,0) + coalesce(c.tc6672,0)
+ coalesce(c.tf6672,0) + coalesce(c.tc6673,0) + coalesce(c.tf6673,0)
+ coalesce(c.pc6673,0) + coalesce(c.pf6673,0) + coalesce(c.pc6674,0)
+ coalesce(c.pf6674,0) + coalesce(c.tc5852,0) + coalesce(c.tf5852,0)
+ coalesce(c.tc5853,0) + coalesce(c.tf5853,0)
FROM cmt_7th c
但是如果您使用select sum(coalesce(c.tc6671,0) ...
,那么您将只获得1行和列,其中所有列的总和。
看看我的意思