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

Ret*_*der 1 sql sql-server sql-server-2000

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

ang*_*son 7

是的,该函数被调用ISNULL,您可以像这样使用它:

SELECT ISNULL(columnname, 0.0) AS xyz FROM tablename
Run Code Online (Sandbox Code Playgroud)

您基本上指定在第一个值为的情况下返回哪个值null.

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

  1. 如果第一个参数为非null,则返回第一个参数的值
  2. 否则,返回第二个参数

您也可以使用此COALESCE函数,它接受未指定数量的参数,并null按照指定的顺序返回第一个非参数值.

换一种说法:

ISNULL(columnname, 0.0)
Run Code Online (Sandbox Code Playgroud)

COALESCE(columnname, 0.0)
Run Code Online (Sandbox Code Playgroud)

表现相同,但我不知道这两者的"sargeability"是否存在差异,即.他们是否可以使用索引.