如果money或float列为null,sql2000中是否有内置函数返回0或0.00?

时间:2011-04-08 17:34:13

标签: sql sql-server sql-server-2000

如果money或float列为null,sql2000中是否有一个简单的内置函数返回0或0.00?或者我是否需要自己构建函数,我将如何构建它? if(isnull(col1))然后0 else col1?

1 个答案:

答案 0 :(得分:7)

是的,该函数名为ISNULL,您可以这样使用它:

SELECT ISNULL(columnname, 0.0) AS xyz FROM tablename

如果第一个值为null,您基本上指定要返回的值。

请注意ISNULL不会返回一个布尔值,指示参数是否为null,而是传递2个参数,它会执行以下操作:

  1. 如果第一个参数是非null,则返回第一个参数的值
  2. 否则,返回第二个参数
  3. 您也可以使用COALESCE函数,它接受一个未指定数量的参数,并按照指定的顺序返回第一个非null参数值。

    换句话说:

    ISNULL(columnname, 0.0)
    

    COALESCE(columnname, 0.0)
    

    行为相同,但我不知道这两者的“sargeability”是否存在差异,即。他们是否可以使用索引。