2009-11-24 16 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