1
2
你有其他答案指出你最好把你的过滤器
如果您想获得所有行的总和,并将这些数据放入列中,可以使用以下查询:
|
2
1
对原问题的回答:
不,你没有。
不,你不这么做也是出于同样的原因。
这取决于当所有值都为
这是 SQLFiddle 演示 更新 给出你改变后的问题中类似的表达
你很可能想使用
或
这是 SQLFiddle 演示 |
3
1
如果你只想得到以下情况的总和
如果您也在选择其他列,那么我会这样做:
|
4
1
不管怎样,正确的方法是:
你的方法很糟糕,因为它对索引不友好 此外,对于case语句,您应该评估每一行。 如果有更多列要聚合,则可以执行CTE查询,然后联接结果:
已编辑 @RomanPekar评论的第二个问题。 |
5
0
如果你使用方法II,你就不需要ELSE,所以我想就代码更少而言,这更好。 |
6
0
两种变体返回相同的结果: 第一个将NULL替换为零 之前 SUM和第二个替换NULL 之后 SUM,即没有带“A”的行。 顺便说一句,我会用标准SQL COALESCE(UNIT,0.00)代替专有的ISNULL。 当然,您可以简单地将其替换为:
|
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |