티스토리 뷰

Database/Oracle

[오라클] NULL 과의 연산

데브포유 2009. 7. 8. 16:22
반응형

SELECT  NULL + 100 FROM DUAL; 의 결과는 무엇일까요?

NULL과 사직연산을 하게되면 결과 값은  NULL이 됩니다.

그래서 SELECT NVL(NULL, 0) + 100 FROM DUAL; 과 같이 NULL 공포에서
벗어 나려고 NVL 함수를 자주 사용하게 됩니다.

근본적으로 컬럼값에 NULL이 없게 NOT NULL로 설계 했다면 NVL를 남발하는 일을
없었겠죠. ㅎㅎ

그리고 또하나 NULL이 포함된 컬럼에 그룹함수( SUM() ) 를 사용하면 어떻게 될까요?

SUM를 포함한 그룹함수에서는 NULL 컬럼을 자동으로 건너띄므로 NULL 값이 있다고
해서 전체 결과가 NULL로 변해 버리지 않습니다. 즉 NVL 함수를 사용할 필요가 없다는
것입니다.

NVL() 도 함수임으로 자주 콜하게 되면 부하가 생기겠죠. 설계에서부터 NULL이 나오지
않게 하고 그룹함수는 NVL를 사용할 필요가 없으니 굳이 넣어서 부하를 줄 필요가 없겠죠. . .



반응형