如果money或float列为null,sql2000中是否有一个简单的内置函数返回0或0.00?或者我是否需要自己构建函数,我将如何构建它? if(isnull(col1))然后0 else col1?
答案 0 :(得分:7)
是的,该函数名为ISNULL
,您可以这样使用它:
SELECT ISNULL(columnname, 0.0) AS xyz FROM tablename
如果第一个值为null
,您基本上指定要返回的值。
请注意ISNULL
不会返回一个布尔值,指示参数是否为null
,而是传递2个参数,它会执行以下操作:
null
,则返回第一个参数的值您也可以使用COALESCE
函数,它接受一个未指定数量的参数,并按照指定的顺序返回第一个非null
参数值。
换句话说:
ISNULL(columnname, 0.0)
和
COALESCE(columnname, 0.0)
行为相同,但我不知道这两者的“sargeability”是否存在差异,即。他们是否可以使用索引。