2009-11-24 3 views
2

효율적으로 aritmetic 작업을 관리하기 위해 Select stament에서 커서가 반환 한 숫자 필드에서 NULL 값을 관리하는 방법은 무엇입니까?커서의 숫자 필드로 NULL 값을 관리하는 방법은 무엇입니까?

+0

우리는 당신을 돕는 방법을 이해하기 위해 무엇을하고 있는지 더 많이 알아야한다고 생각합니다. 왜 커서를 사용하고 있습니까? 그것은 대개 가난한 행동입니다. – HLGEM

+0

그것은 약간의 레코드가있는 커서입니다. 필터 처리 할 각 레코드를 iteract해야합니다. if, elseif, else 조건에 따라 다른 aritmetics 작업을 수행해야합니다. 그렇지 않으면 몇 가지 select staments를 사용하여 절차를 수행 할 수 있습니다. – RicardoBalda

답변

5
  1. 커서를 사용하지 마십시오.

  2. 당신이 (정말?), 당신은 ISNULL 함수를 사용할 수 있습니다해야하는 경우 :

    SELECT ISNULL(fieldname, 0) 
    

당신에게 (영) "0"을 줄 것이다 NULL 대신합니다.

2

당신이 처음에 커서를 피할 수없는 가정 NULL IS replacementvalue 경우와 value을 대체 할 것이다, 나는 NULL 훨씬 다르게 취급 할 이유를 이해하지 못하는 쿼리에서 사용하는 변수보다 많습니다. INSULL, COALESCE, CASE WHEN 등이 있습니다.

한 가지 흥미로운 점 :

DECLARE @v as int -- initialized to NULL 

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

당신은 반드시 마지막 행의 @v 설정 NULL 때부터 @v 초기화되지 않은 구별 할 수 없습니다.

관련 문제