Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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
Sql server 如何使用游标中的数字字段管理空值?_Sql Server_Stored Procedures - Fatal编程技术网

Sql server 如何使用游标中的数字字段管理空值?

Sql server 如何使用游标中的数字字段管理空值?,sql-server,stored-procedures,Sql Server,Stored Procedures,如何在Select语句中管理游标返回的数值字段中的空值,以有效地管理算术运算 不要使用光标 如果必须(真的?),可以使用ISNULL函数: SELECT ISNULL(fieldname, 0) 将给您一个“0”(零)而不是NULL ISNULL(value, replacement) 如果值为空,则将值替换为替换 假设您首先无法避免光标,我不理解为什么NULL在变量中的处理方式与在查询中的处理方式大不相同-存在INSULL,合并,时的情况等 有一件有趣的事: DECLARE @v as

如何在Select语句中管理游标返回的数值字段中的空值,以有效地管理算术运算

  • 不要使用光标

  • 如果必须(真的?),可以使用ISNULL函数:

    SELECT ISNULL(fieldname, 0)
    
  • 将给您一个“0”(零)而不是NULL

    ISNULL(value, replacement)
    
    如果
    为空,则将
    替换为
    替换


    假设您首先无法避免光标,我不理解为什么
    NULL
    在变量中的处理方式与在查询中的处理方式大不相同-存在
    INSULL
    合并
    时的情况等

    有一件有趣的事:

    DECLARE @v as int -- initialized to NULL
    
    { -- loop through a cursor
    FETCH NEXT INTO @v
    }
    

    您不一定能够将未初始化的
    @v
    与最后一行的
    @v
    设置为
    NULL

    时区分开来,我认为我们需要了解更多您正在做的事情,以了解如何帮助您。你为什么用光标?这通常是一个糟糕的做法。它是一个有几个记录的游标,我需要用if、elseif、else条件对每个记录进行提取以进行不同的算术运算,否则我使用了几个select语句,可能是许多过程。