2009-11-24 45 views
2

如何管理Select stament中游标返回的数值字段中的NULL值,以管理有效的aritmetic操作?如何使用游标中的数值字段管理NULL值?

+0

我认为我们需要了解更多关于如何理解如何为您提供帮助的信息。你为什么使用游标?这通常是一种不好的做法。 – HLGEM 2009-11-24 15:46:23

+0

这是一个带有几条记录的游标,我需要用每条记录迭代来筛选if,elseif,else条件来进行不同的操作,否则我会使用几个选择的stages,可能是maney程序。 – RicardoBalda 2009-11-24 16:24:08

回答

5
  1. 请勿使用游标。

  2. 如果你必须(真的吗?),你可以使用ISNULL函数:

    SELECT ISNULL(fieldname, 0) 
    

会给你一个 “0”(零),而不是NULL。

2

假设你无法避免摆在首位的光标代替value,我不明白为什么一个NULL将是非常不同的方式在处理一个变量比你会在查询 - 有INSULL, COALESCE,CASE WHEN

一件有趣的事:

DECLARE @v as int -- initialized to NULL 

{ -- loop through a cursor 
FETCH NEXT INTO @v 
} 

你将不能够必然在最后一排的@v设置为NULL区分未初始化的@v