[SQLD 퀴즈] NULL이 포함된 연산

다음 중 테이블 tab1에 아래와 같은 데이터가 존재할 경우에 대한 설명으로 가장 적절한 것은? (각 칼럼의 타입은 number이다.)


 

-----------------------   아         래  ------------------------------------

col1       col2        col3
=========================
    10         20     NULL
    15     NULL     NULL
    50         70       20

-------------------------------------------------------------------------

 

① select sum(col2) from tab1 의 결과는 NULL이다.
② select sum(col1 + col2 + col3) from tab1 의 결과는 185 이다.
③ select sum(col2 + col3) from tab1 의 결과는 90 이다.
④ select sum(col2) + sum(col3) from tab1 의 결과는 90 이다.

 

[출처] http://www.dbguide.net/da.db?cmd=snb13_view&boardGroupUid=6&boardConfigUid=81&boardUid=153323

 

 

 

 

정답 : ③

칼럼끼리 연산할 때 null을 포함하면 결과는 null이다.
레코드끼리 연산할 때 null을 포함하면 결과가 null이 아니며, 이유는 null을 연산에서 제외하기 때문이다

 

[출처] http://www.dbguide.net/da.db?cmd=snb9_4_view&boardUid=153396&boardConfigUid=81