Sql 基于整型字段计算新列
我有一个包含整数列的表,名为“Day1Reg”、“Day2Reg”、“Day7Reg”、“Day1OT”、“Day2OT”、“Day7OT”。我想选择表中的所有行,计算两个名为“WkReg”和“WkOT”的新列,它们将是DayxReg和DayxOT的总和。Dayx列可能为空。以下是到目前为止的问题:Sql 基于整型字段计算新列,sql,sqlite,Sql,Sqlite,我有一个包含整数列的表,名为“Day1Reg”、“Day2Reg”、“Day7Reg”、“Day1OT”、“Day2OT”、“Day7OT”。我想选择表中的所有行,计算两个名为“WkReg”和“WkOT”的新列,它们将是DayxReg和DayxOT的总和。Dayx列可能为空。以下是到目前为止的问题: select *, (Day1Reg+Day2Reg+Day3Reg+Day4Reg+Day5Reg+Day6Reg+Day7Reg) as WkReg, (Day1OT+Day2OT+
select
*,
(Day1Reg+Day2Reg+Day3Reg+Day4Reg+Day5Reg+Day6Reg+Day7Reg) as WkReg,
(Day1OT+Day2OT+Day3OT+Day4OT+Day5OT+Day6OT+Day7OT) as WkOT
from
Week01
where
UserName = "JustMe"
WkReg和WkOT列已创建,但没有值。在几个Dayx列中都有整数值。没有返回错误,只返回WkReg和WkOT中的空白值。推测,一些整数值是
NULL
,这导致整个总和为NULL
。您可以使用coalesce()
将值替换为0
:
UPDATE `Week01` SET `WkReg` = (Day1Reg+Day2Reg+Day3Reg+Day4Reg+Day5Reg+Day6Reg+Day7Reg),
`WkOT`=(Day1OT+Day2OT+Day3OT+Day4OT+Day5OT+Day6OT+Day7OT)
WHERE `UserName` = "JustMe"
select w.*
(coalesce(Day1Reg, 0) + coalesce(Day2Reg, 0) + coalesce(Day3Reg, 0) +
coalesce(Day4Reg, 0) + coalesce(Day5Reg, 0) + coalesce(Day6Reg, 0) + coalesce(Day7Reg, 0)
) as WkReg,
(coalesce(Day1OT, 0) + coalesce(Day2OT, 0) + coalesce(Day3OT, 0) +
coalesce(Day4OT, 0) + coalesce(Day5OT, 0) + coalesce(Day6OT, 0) + coalesce(Day7OT, 0)
) as WkOT
from Week01 w
where w.UserName = 'JustMe';