【发布时间】:2013-09-16 07:17:17
【问题描述】:
什么是最好的方法
方法-I
SELECT
SUM(CASE WHEN CODE = 'A' THEN ISNULL(UNIT,0.00)+ISNULL(UNIT_1,0.00) END) AS UNIT_SUM
FROM tblA
方法二
SELECT
ISNULL(SUM(CASE WHEN CODE = 'A' THEN UNIT+UNIT_1 END),0.00) AS UNIT_SUM
FROM tblA
1) 我关心的是我是否必须将 ISNULL 放在 CASE 语句或外部 CASE 语句中。 它是否影响单位总和或两个查询给出相同的结果。 如果任何 UNIT 列的值为 NULL,会发生什么情况。它会导致总计为 NULL。
2) 我必须在 CASE 语句中使用 ELSE,如下所示:
那么 ... ELSE 0.00 结束
【问题讨论】:
-
将
isnull放在外面只会影响sum()的总结果。 -
当你尝试各种可能性时会发生什么?
-
我尝试了一些结果集,两者都给出了相同的结果。因为将来的记录会增加,这是我正在寻找的最佳方法
标签: sql sql-server tsql