试图理解CASE (Transact-SQL)表达式,但最终导致了很多混乱。有谁能用简单的话解释一下以下的说法吗?
CASE SUM(total_of_A) WHEN 0 THEN 0 ELSE SUM(B) / SUM(total_of_A) END;我朗读下面的内容,但它不能消除混乱
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ELSE else_result_expression ]
END 发布于 2015-08-04 10:37:53
在SQL Server中,除以零会导致以下错误:
Msg 8134,第16级,状态1,第1行 除以所遇到的零错误。
因此,case statement是用来避免这种情况的。
无论如何,我想这是错误的,因为value / 0不是0。我更喜欢下面的检查:
SUM(B) / NULLIF(SUM(total_of_A), 0)因为它更短,所以返回NULL。
https://stackoverflow.com/questions/31806835
复制相似问题