-
/* 선택 함수 -- 여러가지 경우에 따라 알맞은 결과를 선택하는 함수 -- IF, SWITCH 와 비슷 -- DECODE(컬럼명 | 계산식, 조건1, 결과1, 조건2, 결과2, ...[,아무것도 만족X]) -- 컬럼명 | 계산식의 값이 일치하는 조건이 있으면 -- 해당 조건 오른쪽에 작성된 결과가 반환 */ -- 예제 1) ---> EMPLOYEE 테이블에서 모든 사원의 이름, 주민번호, 성별 조회 SELECT EMP_NAME, EMP_NO, DECODE (SUBSTR(EMP_NO,8,1), -- 주민번호 870808-여덟번째 = 성별 성별은 한 자리 '1', '남자','2','여자', '기타') AS "성별" FROM EMPLOYEE; /* EMP_NAME EMP_NO 성별 선동일 621231-1985634 남자 송종기 631112-1548654 남자 노옹철 861015-1356452 남자 송은희 631010-2653546 여자 */ /* CASE WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 WHEN 조건3 THEN 결과3 ELSE 결과 END -- DECODE 는 계산식 | 컬럼 값이 딱 떨어지는 경우 사용 가능 -- CASE 는 계산식 | 컬럼 값을 범위로 지정 가능 */ -- 예제 1 -- EMPLOYEE 테이블에서 사번, 이름, 급여, 구분을 조회 -- 구분 받는 급여에서 초급 중급 고급 조회 -- 급여가 500 만 이상 고급 -- 급여가 300 만 이상~ 500 만 미만 중급 -- 급여가 300 만 미만 초급 SELECT EMP_ID, EMP_NAME, SALARY, CASE WHEN SALARY >= 5000000 THEN '고급' -- WHEN = IF(SALARY >= 5000000) { WHEN SALARY >= 3000000 THEN '중급' -- ELSE IF System.out.println("고급") ELSE '초급' -- ELSE } END 구분 -- 표시될 컬럼명 FROM EMPLOYEE;