SELECT
sum(TotalHoursM)
+ (TotalHoursT)
+ (TotalHoursW)
+ (TotalHoursTH)
+ (TotalHoursF)
AS TOTAL
FROM LeaveRequest
答案 0 :(得分:91)
如果列的值为0,那么你很好,我的猜测是你有一个Null值的问题,在这种情况下你需要使用IsNull(Column, 0)
来确保它至少为0。
答案 1 :(得分:60)
使用ISNULL
功能的先前答案是正确的。 COALESCE
功能也可以使用。在给定的示例中:
SELECT sum(COALESCE(TotalHoursM,0))
+ COALESCE(TotalHoursT,0)
+ COALESCE(TotalHoursW,0)
+ COALESCE(TotalHoursTH,0)
+ COALESCE(TotalHoursF,0) AS TOTAL FROM LeaveRequest
这与ISNULL
解决方案完全相同,唯一的区别是函数的名称。在SQL世界中存在一些“更好”的分歧。但两者都有效。
我提交这个替代方案有两个原因。 COALESCE
是ANSI标准,ISNULL
不是。但更重要的是COALESCE
更灵活。
ISNULL
只能使用两个参数。如果第一个参数为NULL,则返回第二个参数的值,否则返回第一个参数的值。
COALESCE将采用2到'n'(我不知道'n'的限制)参数并返回不是NULL
的第一个参数的值。当只有两个参数时,效果与ISNULL
相同。
答案 2 :(得分:15)
SELECT sum(isnull(TotalHoursM,0))
+ isnull(TotalHoursT,0)
+ isnull(TotalHoursW,0)
+ isnull(TotalHoursTH,0)
+ isnull(TotalHoursF,0)
AS TOTAL FROM LeaveRequest
答案 3 :(得分:6)
Just for reference, the equivalent statement for MySQL is: IFNull(Column,0)
如果不为null,则此语句将作为列值进行求值,否则将其计算为0。
答案 4 :(得分:3)
您可以使用ISNULL
:
ISNULL(field, VALUEINCASEOFNULL)
答案 5 :(得分:1)
看起来你想要SUM所有列(我不确定“sum 3 columns”来自哪里),而不仅仅是TotalHoursM,所以试试这个:
SELECT
SUM( ISNULL(TotalHoursM ,0)
+ ISNULL(TotalHoursT ,0)
+ ISNULL(TotalHoursW ,0)
+ ISNULL(TotalHoursTH ,0)
+ ISNULL(TotalHoursF ,0)
) AS TOTAL
FROM LeaveRequest
答案 6 :(得分:1)
您也可以使用library(tm)
data(crude)
corp <- crude
corp <- tm_map(corp, content_transformer(gsub), pattern="(?<=\\s|^)([a-z]+)(?=\\s|$|\\W)", replacement = " ", perl=T)
corp <- tm_map(corp, content_transformer(gsub), pattern="\\d|\\W", replacement = " ", perl=T)
corp <- tm_map(corp, content_transformer(gsub), pattern="\\s+", replacement = " ", perl=T)
inspect(corp[[1]])
答案 7 :(得分:0)
我会试试这个:
select sum (case when TotalHousM is null then 0 else TotalHousM end)
+ (case when TotalHousT is null then 0 else TotalHousT end)
+ (case when TotalHousW is null then 0 else TotalHousW end)
+ (case when TotalHousTH is null then 0 else TotalHousTH end)
+ (case when TotalHousF is null then 0 else TotalHousF end)
as Total
From LeaveRequest
答案 8 :(得分:0)
如果要避免使用空值,请使用IsNull(Column,1)