select x/(a*b+c-d) from xxxx
이런식의 쿼리를 사용할 경우 0으로 나누는 오류가 발생하여 처리가 되지 못하는 경우가 있다. 일반적으로는 (a*b+c-d) 가 0인지 아닌지를 미리 테스트 하여 처리하는데 수식이 이런식으로 고정된 것이 아니라 임의의 식을 사용해야 하는 경우에는 미리 테스트 하는 것이 불가능하다. 즉,
select eq from xxx
식의 eq이 변수로 주어지는 경우이다. 이럴때는 다음과 같이 한다.
set ansi_warnings off
set arithabort off
select COALESCE(eq, 0) from xxx
ansi_warnings를 끄고 arithabort도 끄게 되면 식의 계산 결과가 오류가 있을 경우 에러 없이 NULL을 반환하게 되므로 COALESCE를 사용하여 NULL일 경우는 0으로 처리해 주면 되는 것이다.(또는 0이 아닌 어떤 원하는 값이든 설정하면 될 것이다.)