我说一个表,列包含整数值,但我不确定它们是否也包含NULL 。现在假设我要添加整数,(以及任何NULL)以将结果作为整数即使中间的任何列都是NULL。
我知道 ISNULL()函数和 COALESCE()函数。但我宁愿不使用任何这些。 Nor 我想使用 CASE 。我知道 CASE 会做我想要的,但我正在寻找更好的东西。
就像我们有 CONCAT_NULL_YIELDS_NULL 一样,以确保当字符串连接到空值时,结果不为空。
我想要类似这个选项的东西。提前谢谢。
答案 0 :(得分:1)
您应该只使用这些功能。假设你不能:
SELECT SUM(MyIntCol) --filters out NULLs automatically
SELECT CASE WHEN MyIntCol IS NOT NULL THEN MyIntCol ELSE 0 END --default value 0
答案 1 :(得分:1)
这不是一个真正的答案,但它可能是运行MS SQL Server 2012
或更新的人的解决方案。
SELECT IIF(<NullableColumn1> is null, 0, <NullableColumn1>)
+ IIF(<NullableColumn2> is null, 0, <NullableColumn12) ...
FROM <YourTable>
但是我认为,当使用CASE
时,引擎将执行相同的操作。