MSSQL 0을 Null로 반환하여 isnull로 처리하기
MSSQL 에서 0으로 나눌시에는 오류가 발생한다. 0으로 숫자를 나눈건 로직이 잘못됐거나 모델링 잘못된 것이다.
하지만 .. 사람 맘 같이 세상이 움직이겠는가..
결국은 숫자가 꼬이고 꼬이면 0으로 나누고 결국 오류가 발생할것이다.
오늘은 그래서 MSSQL에서 0으로 나누기 오류를 대비하는 법을 배워보겠다.
우선 아래처럼 쿼리를 MSSQL매니저먼트에서 실행해보자
SELECT 1000 / 0 |
▼ 당연히 오류가 발생하였다. 수학에선 0으로 숫자를 나눌수 없다.
이번엔 이 쿼리를 실행해보자
SET ANSI_WARNINGS OFF SET ARITHIGNORE ON SET ARITHABORT OFF select 100 / 0 |
▼ 아래처럼 NULL 이 반환 됐다. (오류만 발생안했을 뿐이지 결국 오류이지만)
해당 옵션과 함께 isnull을 사용하면
SET ANSI_WARNINGS OFF SET ARITHIGNORE ON SET ARITHABORT OFF select ISNULL(100 / 0,0) |
▼ 가장 올바른 값이 표출 되었다.
오류를 피해갈 수 있었다가 맞겠네요
+고코더의 추천강의
프로시저에서 오류를 캐치하기 RAISERROR 예제를 배워보세요
-> http://gocoder.tistory.com/34?category=701232
마무리
0으로 숫자를 나누지 않게 프로시져를 개발 하는게 정답입니다.
'IT_Developers > MSSQL' 카테고리의 다른 글
MSSQL - 음수 양수 분별 방법 (0) | 2017.11.07 |
---|---|
MSSQL - 작은 따옴표 쉽게 처리하기 (0) | 2017.11.07 |
MSSQL - Management Studio 매니저먼트 설치 (0) | 2017.07.11 |
MSSQL - EXISTS 사용 방법 (0) | 2017.07.11 |
MSSQL - 프로시져 RAISERROR 예제, 프로시저 오류 캐치하기 (0) | 2017.07.06 |
댓글