본문 바로가기

Database

(14)
기타 함수 ● 조건에 따른 값 선택하기 DECODE(기준깂, 비교값, 출력값, 비교값, 출력값) SELECT DECODE(GENDER, '남성', 1, 2) FROM MEMBERS;SELECT DECODE(SUBSTR(PHONE, 1, 3),'011,'SK','016','KT','기타') FROM MEMBERS;
NULL 관련 함수 ● 반환 값이 NULL일 경우에 대체 값을 제공하는 NVL(NULL, 대체값) 함수 SELECT NVL(AGE, 0) FROM MEMBERS; ● NVL에서 조건을 하나 더 확장한 NVL2(입력값, NOTNULL 대체값, NULL대체값) 함수 SELECT NVL2(AGE, 100/AGE, 0) FROM MEMBERS; ● 두 값이 같은 경우 NULL 그렇지 않은 경우 첫 번째 값 반환 NULLIF(값1, 값2) 함수 SELECT NULLIF(AGE, 19) FROM MEMBERS;
변환 함수 ● NUMBER 형식을 문자열(VARCHAR2)로 변환 TO_CHAR(NUMBER) SELECT TO_CHAR(12345678, '$99,999,999,999.99') FROM DUAL; - 숫자 길이보다 길어야 함. 포맷문자 설명 9 숫자 0 빈자리를 채우는 문자 $ 앞에 $ 표시 , 천 단위 구분자 표시 . 소수점 표시 - 공백 없애고 출력SELECT TRIM(TO_CHAR(1234567.3, '9,999,999,999.99')) || '원' FROM DUAL; ● DATE 형식을 문자열(VARCHAR2)로 변환 TO_CHAR(DATETIME) SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL; 포맷문자설명 YYYY/RRRR/YY/YEAR년도표시..
날짜 함수 ● 현재 시간을 얻는 함수 (SYSDATE : 오라클 서버 시간, CURRENT_DATE : 접속자의 시간(세션)) SELECT SYSDATE, CURRENT_DATE, SYSTIMESTAMP, CURRENT_TIMESTAMP FROM DUAL; - 세션 시간과 포맷 변경 ALTER SESSION SET TIME_ZONE = '09:00'; (한국의 경우)ALTER SESSION SET TIME_ZONE = '-08:00'; (미국 LA의 경우)ALERT SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'; ● 날짜 추출함수 EXTRACT(YEAR/MONTH/DAY/HOUR/MINUTE/SECOND FROM ...) SELECT EXTRACT(YEAR FROM..
숫자 함수 ● 절대값을 구하는 함수 ABS(n) SELECT ABS(35), ABS(-35) FROM DUAL; ● 음수/양수를 알려주는 함수 SIGN(n) SELECT SIGN(35), SIGN(-35), SIGN(0) FROM DUAL; ● 숫자의 반올림 값을 알려주는 함수 ROUND(n, i) SELECT ROUND(34,456789), ROUND(34.56789) FROM DUAL;SELECT ROUND(34,456789, 2), ROUND(34.56789, 3) FROM DUAL; ● 숫자의 나머지 값을 반환하는 함수 MOD(n1, n2) SELECT TRUNC(17/5) '몫', MOD(17, 5) '나머지' FROM DUAL; ● 숫자의 제곱을 구하는 함수와 제곱근을 구하는 함수 POWER(n1, n2..
문자열함수 ● 문자열 추출 함수 SUBSTR(문자열, 시작위치, 길이) SELECT SUBSTR('HELLO', 1, 3) FROM DUAL;SELECT SUBSTR('HELLO', 3) FROM DUAL;SELECT SUBSTRB('HELLO', 3) FROM DUAL;SELECT * FROM MEMBERS WHERE PHONE IS NULL AND SUBSTR(BIRTHDAY, 6, 2) IN ('07', '08', '09'); ● 문자열 덧셈 함수 SELECT CONCAT('홍', '길동') FROM DUAL; -문자열 연산SELECT 3 || '4' FROM DUAL; ● 문자열 트림 함수 (공백 제거) SELECT LTRIM(' HELLO ') FROM DUAL;SELECT RTRIM(' HELLO ') ..