0으로 나누기 오류가 발생했습니다.


통계 시스템을 만드는 도중 다음과 같은 에러를 발견했다.


에러 그대로 0으로 나누기를 하면 오류가 발생한다.



***쿼리 실험***


--NULL로 나눌 때
SELECT ( 1 / A.AA) AS A_NULL
FROM (SELECT NULL AS AA) A

--1로 나눌 때
SELECT ( 1 / A.AA) AS A_1
FROM (SELECT 1 AS AA) A

--2로 나눌 때
SELECT ( 1 / A.AA) AS A_2
FROM (SELECT 2 AS AA) A

--0으로 나눌 때
SELECT ( 1 / A.AA) AS A_0
FROM (SELECT 0 AS AA) A



결과는 다음과 같다.




***문제 해결 방법*** 쿼리 부분 앞에
SET ANSI_WARNINGS OFF

SET ARITHIGNORE ON

SET ARITHABORT OFF

을 추가 해주는 것으로 문제가 해결된다.





0으로 나눈 것이 NULL로 처리된다.



***설정 참고 페이지***

http://technet.microsoft.com/ko-kr/library/ms189118(v=sql.105).aspx





Posted by bbd531
,