스터디를 끝마치고, 남은 하루 일과 중 30분 남짓해서 올립니다.
SELECT * FROM EMP;
-- 빈로우가 선택되었을시에 대체방법
SELECT COUNT(EMPNO) AS CNT
FROM EMP
WHERE ENAME = 'SMITH'
AND JOB <> 'CLERK';
-- 안된다...
SELECT COUNT(EMPNO) AS CNT
FROM EMP
WHERE ENAME = 'SMITH'
AND JOB <> 'CLERK'
GROUP BY EMPNO;
-- 안된다...
SELECT NVL(COUNT(EMPNO), 0) AS CNT
FROM EMP
WHERE ENAME = 'SMITH'
AND JOB <> 'CLERK'
GROUP BY EMPNO;
-- 역시 안된다...
SELECT DECODE(COUNT(EMPNO), 0, 0, COUNT(EMPNO)) AS CNT
FROM EMP
WHERE ENAME = 'SMITH'
AND JOB <> 'CLERK'
GROUP BY EMPNO;
-- 좋다 GROUP BY 빼보자! 된다...!
SELECT DECODE(COUNT(EMPNO), 0, 0, COUNT(EMPNO)) AS CNT
FROM EMP
WHERE ENAME = 'SMITH'
AND JOB <> 'CLERK';
-- 역시 안된다...
SELECT DECODE(COUNT(EMPNO), 0, 'SALESMAN', MAX(JOB)) AS JOB
FROM EMP
WHERE ENAME = 'SMITH'
AND JOB <> 'CLERK'
GROUP BY JOB;
-- 이유가 뭘까.....!?
-- GROUP BY를 주었을때와 안주었을시에 왜 다를까...
SELECT DECODE(COUNT(EMPNO), 0, 'SALESMAN', MAX(JOB)) AS JOB
FROM EMP
WHERE ENAME = 'SMITH'
AND JOB <> 'CLERK';