Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果money或float列为null,sql2000中是否有一个内置函数返回0或0.00?_Sql_Sql Server_Sql Server 2000 - Fatal编程技术网

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

如果money或float列为null,sql2000中是否有一个内置函数返回0或0.00?,sql,sql-server,sql-server-2000,Sql,Sql Server,Sql Server 2000,如果money或float列为null,sql2000中是否有一个简单的内置函数返回0或0.00?或者我需要自己构建函数,我将如何构建它?如果是(isnull(col1)),那么是0还是col1 是的,函数名为ISNULL,您可以这样使用它: SELECT ISNULL(columnname, 0.0) AS xyz FROM tablename 如果第一个值为null,则基本上可以指定要返回的值 请注意,ISNULL不会返回指示参数是否为null的布尔值,而是向其传递两个参数,并执行以下操作

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

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

SELECT ISNULL(columnname, 0.0) AS xyz FROM tablename
如果第一个值为
null
,则基本上可以指定要返回的值

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

  • 如果第一个参数为非空,则返回第一个参数的值
  • 否则,返回第二个参数
  • 您还可以为此使用
    COALESCE
    函数,该函数接受未指定数量的参数,并按指定的顺序返回第一个非
    null
    参数值

    换言之:

    ISNULL(columnname, 0.0)
    


    行为相同,但我不知道这两者的“可搜索性”是否有差异,即它们是否可以使用索引。

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

    SELECT ISNULL(columnname, 0.0) AS xyz FROM tablename
    
    如果第一个值为
    null
    ,则基本上可以指定要返回的值

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

  • 如果第一个参数为非空,则返回第一个参数的值
  • 否则,返回第二个参数
  • 您还可以为此使用
    COALESCE
    函数,该函数接受未指定数量的参数,并按指定的顺序返回第一个非
    null
    参数值

    换言之:

    ISNULL(columnname, 0.0)
    


    行为相同,但我不知道这两者的“可搜索性”是否有区别,即它们是否可以使用索引。

    我认为您的意思是“可搜索性”,如“可作为搜索参数使用”。:-)任何表达式都不能使用索引,只有直接列引用:
    select coalesce(col1,0)from foo,其中coalesce(col1,0)=0
    不能在
    col1
    上使用索引,但是
    select coalesce(col1,0)from foo,其中col1为null或col1=0
    可以,前提是这样一个索引存在并且优化器认为有帮助。ISNULL也一样。任何表达式几乎都会扼杀索引的使用。我认为您的意思是“sargable”,如“能够用作搜索参数”。:)任何表达式都不能使用索引,只有直接列引用:
    select coalesce(col1,0)from foo,其中coalesce(col1,0)=0
    不能在
    col1
    上使用索引,但是
    select coalesce(col1,0)from foo,其中col1为null或col1=0
    可以,前提是这样一个索引存在并且优化器认为有帮助。ISNULL也一样。任何表达式几乎都会扼杀索引的使用。