CASE WHEN문 C언어나 JAVA등에서 조건식을 사용하기 위해서는 if문을 주로 사용한다. 오라클도 이와 유사하게 조건식을 사용할 수 있는 방법이 있다. 바로 CASE WHEN문이다. CASE WHEN [조건 1] THEN [출력 1] WHEN [조건 2] THEN [출력 2] ... ELSE [출력 N] END CASE WHEN문의 기본적인 문법은 위와 같다. 프로그래밍 언어에서 사용하는 if문과 거의 비슷하다. CASE WHEN 뒤에 조건을 작성하고, 해당 조건을 만족하면 THEN 뒤의 출력값을 출력하는 식이다. 예를 들어 SELECT CASE WHEN gender = 'M' THEN '남성' WHEN gender = 'F' THEN '여성' END AS '성별' FROM dual; 위와 같이 사..
LOB(Large Object) 타입이란? LOB(Large Object)타입은 오디오, 비디오, 문서 등 다양한 데이터를 큰 용량까지 저장할 수 있는 데이터 타입이다. LOB은 아래와 같이 4가지 종류가 존재한다. BLOB(Binary Large Object) : 바이너리(binary)타입의 어떠한 데이터든 저장할 수 있다. 주로 이미지, 오디오, 영상에 활용된다. CLOB(Character Large Object) : 매우 큰 용량의 문자열 혹은 문서를 저장할 때 사용한다. 고정 길이를 사용한다. NCLOB(National Character Set Large Object) : National 문자열 세트를 저장한다. CLOB과는 다르게 가변 길이를 사용한다. BFILE(External Binary F..
TO_DATE() 함수 TO_DATE() 함수는 문자열 데이터를 일정 포맷의 날짜 타입으로 변환하는 함수이다. 예를 들어 아래와 같이 문자열을 날짜 타입으로 바꿀수 있다. SELECT TO_DATE('2023-10-12', 'YYYY-MM-DD') FROM DUAL; 아래 표에 나온 것처럼 특정 문자열을 날짜 타입으로 변환할 수 있다. 이때 문자열과 날짜 타입의 포맷이 일치해야 한다. 포맷 설명 YYYY/YY/YEAR 년도(4자)/년도(뒤 2자)/문자년도 MONTH/MON/MM/RM 달(이름/약어/숫자/로마 기호) DDD/DD/D 일(1년 기준/1달 기준/1주 기준) DAY/DY 요일(이름/약어) HH/HH24 12시간/24시간 표준 MI 분(0~59) SS 초(0~59) 예시 SELECT TO_DATE..
TO_CHAR() 함수 TO_CHAR() 함수는 숫자 혹은 날짜로 주어진 데이터를 특정 포맷의 문자열 타입으로 변환해주는 함수이다. 날짜 변환 포맷 설명 YYYY/YY/YEAR 년도(4자)/년도(뒤 2자)/문자년도 MONTH/MON/MM/RM 달(이름/약어/숫자/로마 기호) DDD/DD/D 일(1년 기준/1달 기준/1주 기준) DAY/DY 요일(이름/약어) HH/HH24 12시간/24시간 표준 MI 분(0~59) SS 초(0~59) 예시 SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') , TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') , TO_CHAR(SYSDATE, 'MON') , TO_CHAR(SYSDATE, 'DAY') FROM DUAL; 결과 : 숫..
SYSDATE 함수 SYSDATE는 지정된 형식으로 현재 날짜와 시간을 표시하는 함수이다. SELECT SYSDATE FROM DUAL; 위와 같은 방식으로 사용할 수 있다. 사용환경에 따라 결괏값은 다르겠지만 보통 일-월-년도와 같이 출력된다. 날짜 포맷 정하기 TO_CHAR() 함수를 통하여 SYSDATE의 포맷을 원하는 대로 정할 수 있다. SELECT TO_CHAR(SYSDATE, 'YYYY') as "연도" , TO_CHAR(SYSDATE, 'MM') as "월" , TO_CHAR(SYSDATE, 'DD') as "일" , TO_CHAR(SYSDATE, 'HH24') as "시간" , TO_CHAR(SYSDATE, 'MI') as "분" , TO_CHAR(SYSDATE, 'SS') as "초" ..
DECODE 함수 DECODE 함수는 오라클에서 지원하는 편리한 함수이다. 다른 프로그래밍 언어에서 사용되는 if~else문의 기능을 편리하게 수행할 수 있다. DECODE("컬럼", "조건1", "결과1", "조건2", "결과2"...."else결과") 기본적인 사용법은 위와 같다. 만약 컬럼의 조건1이 만족되면 결과1이 출력되고 조건2가 만족되면 결과2가 출력.... 식으로 조건-결과가 한 쌍을 이루며 if문처럼 동작한다. 만약 모든 조건이 만족되지 않는다면 마지막 "else결과"가 출력된다. "else결과"는 생략할 수 있다. 예를 들어 아래와 같은 경우를 보자. WITH TB_TEL AS ( SELECT '02' REGION_TEL FROM DUAL UNION ALL SELECT '031' REG..
NVL함수 NVL함수를 사용하면 값이 NULL인 경우 지정된 값을 출력하도록 설정할 수 있다. SELECT NVL("값", "지정값") FROM DUAL; 기본적인 사용법은 위와 같다. "값"이 NULL이라면 "지정값"을 출력하고, 그렇지 않다면 기존 값을 그대로 출력한다. SELECT NVL(NAME, "홍길동") FROM TB_STUDENT; 예를 들어 TB_STUDENT라는 테이블에서 학생들의 이름(NAME)을 출력한다고 하자. 만약 이름이 NULL이라면 "홍길동"이라는 값이 출력된다. NVL2 함수 NVL2 함수는 값이 NULL이 아닌 경우에는 지정값1을 출력하고, NULL이라면 지정값2를 출력하도록 한다. SELECT NVL("값", "지정값1", "지정값2") FROM DUAL; 기본적인 사용..
ROUND 함수 오라클에서 반올림을 하기 위해서는 ROUND 함수를 사용할 수 있다. ROUND 함수는 특정 자릿수에서 반올림을 할 수 있다. ROUND([숫자], [옵션]) ROUND 함수는 기본적으로 위와 같이 사용할 수 있다. 옵션을 생략하면 소수점 첫 번째 자리를 반올림하고 정수 부분만 표시한다. 예시 SELECT ROUND(134.561, 1) ,ROUND(134.561, 2) ,ROUND(134.561, 3) ,ROUND(134.561) FROM DUAL; 결과 : 옵션에 1을 넣으면 소수점 두번째 자리에서 반올림해서 첫 번째 자리까지 표시한다. SELECT ROUND(134.561, -1) ,ROUND(134.561, -2) ,ROUND(134.561, -3) FROM DUAL; 결과 : 마..
오라클 TRUNC 함수 오라클에서 TRUNC 함수를 사용하면 지정한 자릿수에 버림(절사)을 할 수 있다. TRUNC([값] , [옵션]) 기본 사용법은 위와 같다. [값]에 절사 할 값을 넣고 [옵션]을 주면 된다. 숫자 절사하는 법 SELECT TRUNC('34.123', 1) AS "RESULT1" , TRUNC('34.123', 2) AS "RESULT2" , TRUNC('34.123', 3) AS "RESULT3" FROM DUAL; 결과: 소수를 TRUNC 함수에 넣으면 옵션값에 따라 절사를 한다. 만약 옵션을 1을 주면 소수점 첫 번째 자리에서 절사 하겠다는 것이고, 2를 주면 두 번째 자리에서 절사 하는 것이다. SELECT TRUNC('34.123', -1) AS "RESULT1" , TR..
오라클 문자열 대소문자 치환하는 법 오라클에서 문자열을 대문자->소문자 혹은 소문자->대문자로 치환하는 법은 LOWER 또는 UPPER 함수를 사용하면 된다. 대문자를 소문자로 치환하려면 LOWER 함수를 사용하면 되고, 소문자를 대문자로 치환하려면 UPPER 함수를 사용하면 된다. 그리고 INITCAP이라는 함수를 사용하면 첫 글자만 대문자로 변환하고 나머지는 소문자로 변환해 준다. LOWER 함수 LOWER 함수는 모든 문자를 소문자로 치환한다. 대문자는 소문자로, 소문자나 알파벳이 아닌 문자는 그대로 둔다. 예시 SELECT LOWER('HELLO') AS "RESULT" FROM DUAL; 결과 : UPPER 함수 UPPER 함수는 모든 문자를 대문자로 치환한다. 소문자는 대문자로, 대문자나 알파..