왕초보입니다. 자격증 공부중인데 해설을 봐도 이해가 가지 않는 문제가 있어서,
적절한 게시판인지는 모르겠으나 도움을 얻을 수 있을까 하여 올려봅니다 ㅠ.ㅠ
문) 다음 중 레코드 건수가 다른 SQL 문은 무엇인가?
1) SELECT COUNT(*) FROM EMP WHERE 1=0
2) SELECT MAX(EMPNO) FROM EMP WHERE 1=0
3) SELECT NVL(EMPNO, 9999) FROM EMP WHERE 1=0
4) SELECT NVL(MAX(EMPNO), 0000) FROM EMP WHERE 1=0
저는 WHERE 1=0이니 SELECT를 했을 때 NULL이 나온다고 생각해서,
1번 쿼리의 결과는 0 / 레코드 건수는 1
2번은 NULL / 레코드 건수는 0
3번은 9999 / 레코드 건수는 1
4번은 0000 / 레코드 건수는 1,
따라서 답이 2번이라고 생각했는데 답이 3번이더군요.
혹시 이유가 무엇인지 ㅜㅜ 알려주신다면 큰 도움이 될 것 같습니다.
Comment 1
-
이리
2021.03.19 08:33
예제가 오라클이긴 하지만..
WHERE 1 = 0은 data가 아무것도 나오지 않지만 집계 함수인 경우는 다릅니다
본문을 보면 2번하고 3번을 잘못 생각 하시는것 같습니다
2번의 경우 NULL이 나오므로 data는 1건 입니다.
3번의 경우 아무것도 나오지 않으므로 data는 0건 입니다.
실제 스크립트를 실행 시켜 보시면 더 이해가 잘 되실겁니다.