본문 바로가기

Study/SQL20

8.선택함수 /* - 여러가지 경우에 선택을 할 수 있는 기능을 제공하는 함수 1) DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, ..., false 결과값) */ -- 컬럼의 값이 조건과 일치하는지 판단 SELECT DECODE(SUBSTR('1111294056520',7,1), '1', '남자', '2', '여자', '3', '남자', '4', '여자', '잘못입력함') FROM DUAL; -- 주민등록번호를 가지고 나이를 추출 -- 1900년생과 2000년생 SELECT TO_CHAR(SYSDATE,'YYYY')-(DECODE(SUBSTR('1111294056520',7,1), '1', '19', '2', '19', '3', '20', '4', '20', '잘못입력함')||SUBSTR('11112940.. 2023. 4. 30.
7.NULL처리 함수 /* 1) NVL(컬럼, 컬럼값이 NULL이면 반환할 값) - 컬럼과 반환 값의 타입이 일치해야 함 -> 일치하지 않으면 수치 부적합 오류 ** ORDER BY 절에 별칭 사용 가능 */ -- NULL은 연산되지 않으므로 0으로 변경 후 연산 SELECT emp_name, NVL(commission_pct, 0) AS 보너스, ((salary+(salary*NVL(commission_pct, 0)))*12) AS 연봉 FROM emp; SELECT emp_name, NVL(TO_CHAR(DEPARTMENT_ID), '부서없음') FROM emp; /* 2) NVL2(컬럼, 변경할값1, 변경할값2) - 컬럼이 NULL이 아니면 변경할 값1을 반환, NULL이면 변경할값2를 반환 */ -- 보너스를 출력하는.. 2023. 4. 29.
6.형변환함수 /* 1) TO_CHAR(날짜|숫자[,포맷]) - 날짜 숫자 타입의 데이터를 문자 타입으로 변환 후 반환 */ -- 숫자 -> 문자 SELECT TO_CHAR(1234) FROM DUAL; -- 9 : 6칸의 공간을 확보 후 오른쪽 정렬 빈칸은 공백으로 채움 SELECT TO_CHAR(1234,'999999') FROM DUAL; -- 0 : 빈공간을 0으로 채워줌 SELECT TO_CHAR(1234,'000000') FROM DUAL; -- L : 현재 설정된 나라(LOCAL)의 화폐단위를 출력 SELECT TO_CHAR(1234567,'L9999999') FROM DUAL; -- , : 입력한 숫자보다 지정되는 포맷의 길이가 길어야함 SELECT TO_CHAR(1234567,'L999,999,999'.. 2023. 4. 28.
5.날짜함수 /* 1) SYSDATE - 현재 날짜와 시간을 반환 2) MONTHS_BETWEEN(DATE1, DATE2) - 입력받은 두 날짜 사이의 개월수를 반환 - 결과 값 타입 NUMBER 3) ADD_MONTHS(DATE, NUMBER) - 특정 날짜에 입력받은 숫자만큼의 개월수를 더한 날짜를 반환합니다. - 결과 값 타입 DATE ** 날짜형식 FMMM 20 ORDER BY FLOOR(MONTHS_BETWEEN(SYSDATE, hire_date)/12) DESC; /* 7) ROUND(DATE, 'YEAR'|'MONTH'|'DAY') - 반올림한 날짜를 반환 8) TRUNC(DATE, 'YEAR'|'MONTH'|'DAY') - 잘라낸 날짜를 반환 SELECT TRUNC(DATE, 'YEAR') -- 월, .. 2023. 4. 27.