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


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


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



***쿼리 실험***


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
--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



결과는 다음과 같다.




***문제 해결 방법*** 쿼리 부분 앞에
1
2
3
SET ANSI_WARNINGS OFF<p></p>
SET ARITHIGNORE ON<p></p>
SET ARITHABORT OFF<p></p>

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





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



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

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





Posted by bbd531
,