SQL 함수 SQL 함수
목차 I. SQL 함수의 개념 II. 문자 함수 III. 숫자 함수 IV. 날짜 함수 V. 데이터 타입의 변환 VI. 일반 함수
SQL 함수의 개념 SQL 함수 SQL 함수의 유형 칼럼의 값이나 데이터 타입의 변경하는 경우 숫자 또는 날짜 데이터의 출력 형식 변경하는 경우 하나 이상의 행에 대한 집계(aggregation)를 하는 경우 SQL 함수의 유형 단일 행 함수 : 테이블에 저장되어 있는 개별 행을 대상으로 함수를 적용하여 하나의 결과를 반환하는 함수 복수 행 함수: 조건에 따라 여러 행을 그룹화하여 그룹별로 결과를 하나씩 반환하는 함수 SQL 함수 단일 행 함수 복수 행 함수
단일 행 함수 단일 행 함수 단일 행 함수의 종류 데이터 값을 조작하는데 주로 사용 행별로 함수를 적용하여 하나의 결과를 반환하는 함수 단일 행 함수의 종류
단일 행 함수 사용법 단일 행 함수의 사용법 function_name : 단일 행 함수 이름 column : 칼럼 이름 expression : 문자열 또는 표현식 arg1, arg2 : 함수의 인수(상수, 변수, 칼럼 이름, 표현식) function_name (column | expression, [arg1, arg2, . . .])
목차 I. SQL 함수의 개념 II. 문자 함수 III. 숫자 함수 IV. 날짜 함수 V. 데이터 타입의 변환 VI. 일반 함수
문자 함수 문자 함수 문자 함수의 종류 문자 데이터를 입력하여 문자나 숫자를 결과로 반환하는 함수 대소문자 변환 함수 문자조작 함수 문자열 길이반환 함수 [표6.1] 대소문자 변환 함수의 종류와 사용 예 종류 의미 사용 예 INITCAP 문자열의 철 번째 문자만 대문자로 변환 INITCAP(‘student’) → Student LOWER 문자열 전체를 소문자로 변환 LOWER(‘STUDENT’) →student UPPER 문자열 전체를 대문자로 변환 UPPER(‘student’)→STUDENT
대소문자 변환 함수 INITCAT 함수 INITCAP 함수 사용법 사용 예 인수로 입력되는 칼럼이나 표현식의 문자열에서 첫 번째 영문자를 대문자로 변환하는 함수 사용법 사용 예 학생 테이블에서 ‘김영균’ 학생의 이름, 사용자 아이디를 출력하여라. 그리고 사용자 아이디의 첫 문자를 대문자로 변환하여 출력하여라 INITCAP (expr | column )
대소문자 변환 함수 LOWER, UPPER 함수 사용법 LOWER (expr | column ) UPPER (expr | column )
대소문자 변환 함수 LOWER, UPPER 함수 예 사용 예 학생 테이블에서 학번이 ‘20101’인 학생의 사용자 아이디를 소문자와 대문자로 변환하여 출력하여라.
문자열 길이 반환 함수 문자열 길이 반환 함수 LENGTH 함수는 인수로 입력되는 칼럼이나 표현식의 문자열의 길이를 반환하는 함수이고, LENGTHB 함수는 문자열의 바이트 수를 반환하는 함수이다. [표6.2] 문자열 길이 반환 함수의 종류와 사용 예 종류 의미 사용 예 LENGTH 문자열의 길이를 반환 LENGTH(‘홍길동’) → 3 LENGTHB 문자의 바이트 수를 반환 LENGTHB(‘홍길동’) → 6
문자열 길이 반환 함수 LENGTH, LENGTHB 함수 사용법 사용 예 부서 테이블에서 부서 이름의 길이를 문자 수와 바이트 수로 각각 출력하여라 LENGTH (expr | column ) LENGTHB (expr | column )
문자조작 함수 [표6.3] 문자 조작 함수의 종류와 사용 예 종류 의미 사용 예 CONCAT 두 문자열을 결합, ‘||’와 동일 CONCAT(‘sql’,’plus’) → sqlplus SUBSTR 특정 문자 또는 문자열 일부를 추출 SUBSTR(‘SQL*Plus’,5,4) → Plus INSTR 특정 문자가 출현하는 첫 번째 위치를 반환 INSTR(‘SQL*Plus’,’*’) → 4 LPAD 오른쪽 정렬후 왼쪽으로 지정문자를 삽입 LPAD(‘sql’, 5, ‘*’) → **sql RPAD 왼쪽 정렬후 오른쪽으로 지정 문자를 삽입 RPAD(‘sql’, 5, ‘*’) → sql** LTRIM 왼쪽 지정 문자를 삭제 LTRIM(‘*sql’, ‘*’) → sql RTRIM 오른쪽 지정 문자를 삭제 RTRIM(‘sql*’, ‘*’) → sql
문자조작 함수 SUBSTR 함수 SUBSTR 함수 사용법 문자열의 일부를 추출하는 함수 문자열에서 m번째 문자부터 n개의 문자 추출 m이 음수이면 시작위치는 문자열의 마지막 n을 생략하면m부터 마지막 문자까지 추출 SUBSTR (expr | column, m[,n] )
문자조작 함수 SUBSTR 함수 예 사용 예 학생 테이블에서 1학년 학생의 주민등록 번호에서 생년월일과 태어난 달을 추출하여 이름, 주민번호, 생년월일, 태어난 달을 출력하여라.
문자조작 함수 INSTR 함수 INSTR 함수 사용법 문자열중에서 사용자가 지정한 특정 문자가 포함된 위치를 반환하는 함수 문자열에서 char가 처음 나타나는 위치 반환 INSTR (expr | column, m[,n] )
문자조작 함수 INSTR 함수 예 사용 예 부서 테이블의 부서 이름 칼럼에서 ‘과’ 글자의 위치를 출력하여라
문자조작 함수 LPAD, RPAD 함수 LPAD, RPAD 함수 사용법 m 폭만큼 공백을 왼쪽 또는 오른쪽에 char 문자 삽입, char가 없으면 공백 삽입 LAPD (expr | column, m[,char] ) RAPD (expr | column, m[,char] )
문자조작 함수 LPAD, RPAD 함수 예 사용 예 교수테이블에서 직급 칼럼의 왼쪽에 ‘*’ 문자를 삽입하여 10바이트로 출력하고 교수 아이다 칼럼은 오른쪽에 ‘+’문자를 삽입하여 12바이트로 출력하여라
문자조작 함수 LTRIM, RTRIM 함수 LTRIM, RTRIM 함수 사용법 함수의 인수에서 삭제할 문자를 지정하지 않으면 문자열의 앞뒤 부분에 있는 공백 문자를 삭제 사용법 문자열의 왼쪽 또는 오른쪽에서부터 지정된 char 문자를 삭제 LTRIM (expr | column, char ) RTRIM (expr | column, char )
문자조작 함수 LTRIM, RTRIM 함수 예 사용 예 부서 테이블에서 부서 이름의 마지막 글자인 ‘과’를 삭제하여 출력하여라
목차 I. SQL 함수의 개념 II. 문자 함수 III. 숫자 함수 IV. 날짜 함수 V. 데이터 타입의 변환 VI. 일반 함수
숫자 함수 숫자 함수 숫자 데이터를 처리하기 위한 함수 [표6.4] 숫자 함수의 종류와 사용 예 종류 의미 사용 예 ROUND 지정한 자리 이하에서 반올림 ROUND(123.17,1) → 123.2 TRUNC 지정한 자리 이하에서 절삭 TRUNC(123.17,1) → 123.1 MOD m을n으로 나눈 나머지 MOD(12,10) → 2 CEIL 지정한 값보다 큰수 중에서 가장 작은 정수 CEIL(123.17) → 124 FLOOR 지정한 값보다 작은수 중에서 가장 큰 정수 FLOOR(123.17) → 123
숫자 함수 ROUND 함수 ROUND 함수 사용법 지정한 자리 이하에서 반올림한 결과 값을 반환하는 함수 expr 또는 column값을 소수점 이하 n+1자리에서 반올림 ROUND (expr | column, n )
숫자 함수 ROUND 함수 예 사용 예 교수 테이블에서 101학과 교수의 일급을 계산(월 근무일은 22일)하여 소수점 첫째 자리와 셋째 자리에서 반올림 한 값과 소숫점 왼쪽 첫째 자리에서 반올림한 값을 출력하여라
숫자 함수 TRUNC 함수 TRUNC 함수 사용법 지정한 소수점 자리수 이하를 절삭한 결과 값을 반환하는 함수 expr 또는 column 값을 소수점 이하 n+1자리에서 절삭한 값 TRUNC (expr | column, n )
숫자 함수 TRUNC 함수 예 사용 예 교수 테이블에서 101학과 교수의 일급을 계산(월 근무일은 22일)하여 소수점 첫째 자리와 셋째 자리에서 절삭 한 값과 소숫점 왼쪽 첫째 자리에서 절삭한 값을 출력하여라
숫자 함수 MOD 함수 MOD 함수 사용법 MOD 함수는 나누기 연산후에 나머지를 출력하는 함수 m을 n으로 나눈 나머지
숫자 함수 MOD 함수 예 사용 예 교수 테이블에서 101번 학과 교수의 급여를 보직수당으로 나눈 나머지를 계산하여 출력하여라
숫자 함수 CEIL, FLOOR 함수 CEIL, FLOOR 함수 사용 예 CEIL (expr | column ) FLOOR (expr | column )
숫자 함수 CEIL, FLOOR 함수 예 사용 예 19.7보다 큰 정수 중에서 가장 작은 정수와 12.345보다 작은 정수 중에서 가장 큰 정수를 출력하여라
목차 I. SQL 함수의 개념 II. 문자 함수 III. 숫자 함수 IV. 날짜 함수 V. 데이터 타입의 변환 VI. 일반 함수
날짜 함수 날짜함수는 날짜 데이터 타입에 사용하는 함수 날짜 계산 날짜 계산은 날짜 데이터에 더하기, 빼기의 연산을 하는 기능 [표6.5] 날짜 타입의 연산 종류 결과 의미 날짜 + 숫자 날짜 날짜에 일수를 가산하여 날짜 계산 날짜 – 숫자 날짜에 일수를 감산하여 날짜를 계산 날짜 – 날짜 일수 날짜와 날짜를 감산하여 일수를 계산 날짜 + 숫자/24 날짜에 시간을 가산하여 날짜 계산
날짜 함수 날짜 계산 예 사용 예 교수 번호가 9908인 교수의 입사일을 기준으로 입사 30일 후와 60일 후의 날짜를 출력하여라
날짜 함수의 종류 [표6.6] 날짜 함수의 종류 종류 의미 결과 SYSDATE 시스템의 현재 날짜 날짜 MONTHS_BETWEEN 날짜와 날짜 사이의 개월을 계산 숫자 ASS_MONTHS 날짜에 개월을 더한 날짜 계산 NEXT_DAY 날짜후의 첫 요일의 날짜를 계산 LAST_DAY 월의 마지막 날짜를 계산 ROUND 날짜를 반올림 TRUNC 날짜를 절삭
날짜 함수 SYSDATE 함수 SYSDATE 함수 사용 예 시스템의 현재 날짜를 출력하여라
날짜 함수 MONTHS_BETWEEN, ADD_MONTHS 사용법 MONTHS_BETWEEN : date1과 date2 사이의 개월 수를 계산 ADD_MONTHS : date에 개월 수를 더한 날짜 계산 MONTHS_BETWEEN (date1, date2 ) ADD_MONTHS (date, 개월 수 )
날짜 함수 MONTHS_BETWEEN, ADD_MONTHS 예 사용 예 입사한지 120개월 미만인 교수의 교수번호, 입사일, 입사일로 부터 현재일까지의 개월 수, 입사일에서 6개월 후의 날짜를 출력하여라
날짜 함수 LAST_DAY, NEXT_DAY 사용법 NEXT_DAY : date 날짜 이후의 첫 번째 ‘day’ 요일의 날짜를 계산 LAST_DAY : date 날짜가 속한 달의 마지막 날짜를 계산 NEXT_DAY (date, ‘day’ ) LAST_DAY (date)
날짜 함수 LAST_DAY, NEXT_DAY 예 사용 예 오늘이 속한 달의 마지막 날짜와 다가오는 일요일의 날짜를 출력하여라
날짜 함수 ROUND, TRUNC 함수 ROUND, TRUNC 함수 사용법 날짜를 반올림 또는 절삭 ROUND (date [, ‘format’]) TRUNC (date,[, ‘format’])
날짜 함수 ROUND, TRUNC 함수 예 1 사용 예
날짜 함수 ROUND, TRUNC 함수 예 2 사용 예 101번 학과 교수들의 입사일을 일, 월, 년을 기준으로 반올림하여 출력하여라.
목차 I. SQL 함수의 개념 II. 문자 함수 III. 숫자 함수 IV. 날짜 함수 V. 데이터 타입의 변환 VI. 일반 함수
데이터 타입의 변환 데이터 타입의 변환 묵시적인 데이터 타입 변환 숫자나 날짜 타입을 문자와 함께 결합하거나 보고서 양식에 맞추기 위해 주로 사용 묵시적인 데이터 타입 변환 묵시적인 데이터 타입 변환은 정확한 연산을 위하여 오라클에서 데이터 타입을 내부적으로 변환하는 경우 문자 타입의 숫자타입으로 변환은 문자열이 숫자로 구성된 경우에만 가능 [표6.7] 묵시적 데이터 타입 변환: WHERE A=B 일 때(A는 칼럼, B는 상수 A의 데이터 타입 B의 데이터 타입 변환결과 NUMBER VARCHAR2또는 CHAR B가 NUMBER 타입으로 변환 A가 NUMBER 타입으로 변환
묵시적인 데이터 타입 변환 studno 가 NUMBER 데이터 타입이고 ‘10102’데이터가 문자인 경우에는 ‘10102’가 NUMBER 데이터 타입으로 묵시적인 변환 발생 grade가 VACHAR2 데이터 타입이고 상수값이 숫자인 경우 grade 칼럼의 데이터 타입이 NUMBER 데이터 타입으로 묵시적인 변환 발생 grade 칼럼에 인덱스가 생성되어 있더라도 묵시적인 변환에 의해 인덱스 사용이 불가능하여 처리 속도가 느려질 수 있음 SELECT studno, name FROM student WHERE studno = ‘10102’; SELECT studno, name FROM student WHERE studno = TO_NUMBER(‘10102’); SELECT studno, name FROM student WHERE grade =4; SELECT studno, name FROM student WHERE TO_NUMBER(grade) = 4;
명시적인 데이터 타입 변화 명시적인 데이터 타입 변환 사용자가 데이터 타입 변환 함수를 이용하여 명시적으로 데이터 타입을 변환 [표6.8] 명시적 데이터 타입 변환 함수 종류 의미 사용 예 결과 TO_CHAR 숫자/날짜 타입을 문자로 변환 TO_CHAR(’06/10’,’YYYY-MM’) 2006-10 TO_NUMBER 문자열을 숫자 타입으로 변환 TO_NUMBER(1000,’9.999’) 1,000 TO_DATE 문자열을 날짜 타입으로 변환 TO_DATE(’06/10’,’YYYY-MM’)
TO_CHAR함수 TO_CHAR 함수 사용법 TO_CHAR 함수는 날짜나 숫자를 문자로 변환하기 위해 사용 날짜 출력 형식 변경 사용법 TO_CHAR (number | date, ‘format’)
날짜 출력 형식의 종류 [표6.9] 날짜 출력 형식의 종류 종류 의미 사용 예 결과 SCC 또는 CC YYYY 또는 SYYYY YYY YY Y Y,YYY GRADE BC 또는 AD B.C. 또는 A.D. 세기 표시 년도 표현 BC, AD 표현 (2006, ‘CC’) (2006, ‘YYYY’) (2006, ‘YYY’) (2006, ‘YY’) (2006, ‘Y’) (2006, ‘Y,YYY’) (2006, ‘YEAR’) (2006, ‘AD’) (2006, ‘A.D.) 21 2006 006 06 6 2,006 TWO THOUSAND SIX AD(서기) A.D.(서기)
날짜 출력 형식의 종류 [표6.9] 날짜 출력 형식의 종류 종류 의미 사용 예 결과 Q MM MONTH MON RM WW W DDD DD D DY DAY 월을 분기로 표현 월을 숫자로 표현 월을 알파벳으로 표현 월을 로마자로 표현 연을 주단위로 표현 월을 주단위로 표현 연중 일로 표현 월중 일로 표현 주중 일로 표현 일에 해당하는 요일약어 일에 해당하는 요일 (2006-10-10, ‘Q’) (2006-10-10, ‘MM’) (2006-10-10, ‘MONTH’) (2006-10-10, ‘MON’) (2006-10-10, ‘RM’) (2006-10-10, ‘WW’) (2006-10-10, ‘W’) (2006-10-10, ‘DDD’) (2006-10-10, ‘DD’) (2006-10-10, ‘D’) (2006-10-10, ‘DY’) (2006-10-10, ‘DAY’) 4(10-12월) 10 OCTOBER OCT X 41 2 283 3 화 화요일
TO_CHAR함수 예 1 사용 예 학생 테이블에서 전인하 학생의 학번과 생년월일 중에서 년월만 출력하여라
TO_CHAR함수 예 2 사용 예 학생 테이블에서 102번 학과 학생의 이름, 학년, 생년월일을 출력하여라
시간 표현 형식의 종류 [표6.10] 시간 표현 형식의 종류 종류 의미 AM 또는 PM HH 또는 HH12 시각(1-12) HH24 24시간(0-23) MI 분 SS 초
시간 표현 형식 예 1 사용 예 교수 테이블에서 101번 학과 교수의 이름과 입사일을 출력하여라.
기타 날짜 표현 형식 [표6.11] 기타 날짜 표현 형식의 종류 종류 의미 “text” 결과와 함께 출력할 문자열을 인용 부호로 표시 TH 서수로 표시 SP 숫자(기수)를 영문으로 표시 SPTH 또는 THSP 서수를 영문으로 표시
기타 날짜 표현 형식 예 사용 예 교수 테이블에서 101번 학과 교수들의 이름, 직급, 입사일을 출력하여라
숫자를 문자 형식으로 변환 [표6.12] TO_CHAR 함수를 이용한 숫자 출력 형식 변환 종류 의미 사용 예 결과 9 한자리의 숫자 표시 (1234, ’99999) 1234 앞부분을 0으로 표시 (1234, ’099999’) 001234 $ 달러 기호를 앞에 표시 (1234, ’$99999’) $1234 . 소수점을 표시 (1234, ’99999.99’) 1234.00 , 특정위치에 ‘,’표시 (1234, ’99,999) 1,234 MI 오른쪽으로 ‘-’기호 표시 (1234, ‘99999MI’) 1234- PR 음수값을 <>으로 표시 (1234, ‘99999PR’) <1234> EEEE 과학적 표기법으로 표시 (1234, ‘9.999EEEE’) 1.234E+03 V 10n을 곱한값으로 표시 (1234, ‘9999V99’) 123400 B 공백을 0으로 펴시 (1234, ‘B9999.99’)
숫자를 문자 형식으로 변환 예 사용 예 보직수당을 받는 교수들의 이름, 급여, 보직수당, 그리고 급여와 보직수당을 더한 값에 12를 곱한 결과를 연봉으로 출력하여라.
TO_NUMBER 함수 TO_NUMBER 함수 사용법 사용 예 TO_NUMBER (char)
TO_DATE 함수 TO_DATE 함수 사용법 사용 예 format : 날짜 포맷의 종류는 표6-9 참조 사용 예 교수 테이블에서 입사일이 ‘june 01,01’인 교수의 이름과 입사일을 출력하여라. TO_NUMBER (char)
중첩 함수 사용법 F1함수의 결과 값은 F2의 인수로, F2의 결과 값은 F3의 인수로 사용된다. F3(F2(F1(column, arg1), arg2), arg3)
중첩 함수 예 사용 예 주민등록번호에서 생년월일을 추출하여 ‘YY/MM/DD’ 형태로 출력하여라.
목차 I. SQL 함수의 개념 II. 문자 함수 III. 숫자 함수 IV. 날짜 함수 V. 데이터 타입의 변환 VI. 일반 함수
일반 함수 NVL 함수 NVL 변환 함수 : NVL 사용법 NVL 함수는 NULL을 0 또는 다른 값으로 변환하기 위한 함수 expression1 : NULL을 포함하는 칼럼 또는 표현식 expression2 : NULL을 대체하는 값 주의 : expression1과 expression2는 반드시 동일한 데이터 타입이어야한다. NVL(expression1, expression2)
일반 함수 NVL 변환 함수 예 사용 예 201번 학과 교수의 이름, 직급, 급여, 보직수당, 급여와 보직수당의 합계를 출력하여라. 단, 보직수당이 NULL인 경우에는 보직수당을 0으로 계산한다.
일반 함수 NVL 확장 함수 : NVL2 함수 NVL2 함수 사용법 NVL2 한수는 첫 번째 인수 값이 NULL이 아니면 두 번째 인수 값을 출력하고, 첫 번째 인수 값이 NULL이면 세 번째 인수 값을 출력하는 함수 사용법 expression1 : NULL을 포함하는 칼럼 또는 표현식 expression2 : expression1이 NULL이 아닐 때 반환되는 값 expression3 : expression1이 NULL일 때 대체되는 값 NVL2(expression1, expression2, expresion3)
일반 함수 NVL 확장 함수 : NVL2 함수 예 사용 예 102번 학과 교수중에서 보직수당을 받는 사람은 급여와 보직수당을 더한 값을 급여 총액으로 출력하여라. 단, 보직수당을 받지 않는 교수는 급여만 급여 총액으로 출력하여라.
일반 함수 NVL 확장 함수 : NULLIF 함수 NULLIF 함수는 두 개의 표현식을 비교하여 값이 동일하면 NULL을 반환하고,일치하지 않으면 첫 번째 표현식의 값을 반환 사용법 expression1 : expression2와 비교하는 값 NULLIF(expression1, expression2)
일반 함수 NVL 확장 함수 : NULLIF 함수 예 사용 예 교수 테이블에서 이름의 바이트 수와 사용자 아이디의 바이트 수를 비교해서 같으면 NULL을 반환하고 같지 않으면 이름의 바이트 수를 반환하여라
일반 함수 NVL 확장 함수 : COALESCE 함수 COALESCE 함수는 인수중에서 NULL이 아닌 첫 번째 인수를 반환하는 함수 사용법 expression-1 : expression-1이 NULL이 아니면 expression-1을 반환 expression-2 : expression-1이 NULL이고 expression-2가 NULL이 아니면 expression-2를 반환 expression-n : expression-1부터 expression-n-1까지의 값이 NULL이고 expression-n이 NULL이 아니면 expression-n을 반환 COALESCE(expression-1, expression-2, … ,expression-n)
일반 함수 NVL 확장 함수 : COALESCE 함수 예 사용 예 교수 테이블에서 보직수당이 NULL이 아니면 보직수당을 출력하고, 보직수당이 NULL이고 급여가 NULL이 아니면 급여를 출력, 보직수당과 급여가 NULL이면 0을 출력하여라
일반 함수 DECODE 함수 DECODE 함수 사용법 DECODE 함수는 기존 프로그래밍 언어에서 IF문이나 CASE 문으로 표현되는 복잡한 알고리즘을 하나의 SQL 명령문으로 간단하게 표현할 수 있는 유용한 기능 DECODE 함수에서 비교 연산자는 ‘=‘만 가능 사용법 표현식 또는 칼럼의 값이 SEARCH1 값과 일치하면 RESULT1값을 반환, SEARCH2값과 일치하면 RESULT2 값 반환 일치하는 값이 없거나 NULL인 경우에는 기본값 반환 기본값이 없는 경우에는 NULL 반환 DECODE(expression | column, SEARCH1, RESULT1 [, SEARCH2, RESULT2, …, ] [, DEFAULT])
DECODE 함수의 개념을 도식적으로 표현한 것이다. EXPRESSION result 1 result 2 result 3 result n … search 1 search 2 search 3 search n
일반 함수 DECODE 함수 예 사용 예 교수 테이블에서 교수의 소속 학과 번호를 학과 이름으로 변환하여 출력하여라. 학과 번호가 101이면 ‘컴퓨터공학과’, 102이면 ‘멀티미디어학과’, 201이면 ‘전자공학과’, 나머지 학과 번호는 ‘기계공학과’(default)로 변환한다.
일반 함수 CASE 함수 CASE 함수 사용법 CASE 함수는 DECODE 함수의 기능을 확장한 함수 DECODE 함수는 표현식 또는 칼럼 값이 ‘=‘ 비교를 통해 조건과 일치하는 경우에만 다른 값으로 대치할 수 있지만, CASE 함수에서는 산술 연산, 관계 연산, 논리 연산과 같은 다양한 비교가 가능 또한 WHEN 절에서 표현식을 다양하게 정의 사용법 CASE expression WHEN comparison exp1 THEN return exp1 [WHEN comparison exp2 THEN return exp2 WHEN comparison exp3 THEN return exp3 ELSE else expression] END
일반 함수 CASE 함수 예 사용 예 교수 테이블에서 소속 학과에 따라 보너스를 다르게 계산하여 출력하여라. 학과 번호별로 보너스는 다음과 같이 계산한다. 학과 번호가 101이면 보너스는 급여의 10%, 102이면 20%, 201이면 30%, 나머지 학과는 0%이다.