오늘은 Oracle SQL에서 자주 쓰이는 문자 처리, 수치 계산, 날짜 연산 함수들을 알려드릴게요!
SELECT
FIRST_NAME,
UPPER(FIRST_NAME) AS 대문자이름,
EMAIL,
LOWER(EMAIL) AS 소문자이메일
FROM EMPLOYEES;
UPPER(col)LOWER(col)예시
Steven→STEVENJDOE@EX.COM→jdoe@ex.com
-- 전체 이름 + 길이
SELECT
FIRST_NAME,
LENGTH(FIRST_NAME) AS 이름_길이
FROM EMPLOYEES;
LENGTH(col)-- 길이가 8인 이름만 뽑기
SELECT
FIRST_NAME
FROM EMPLOYEES
WHERE LENGTH(FIRST_NAME) = 8;
SELECT
JOB_ID,
SUBSTR(JOB_ID, 1, 2) AS 앞2글자,
SUBSTR(JOB_ID, 4) AS 4번째부터끝까지
FROM EMPLOYEES;
SUBSTR(col, 시작위치, 길이?) SUBSTR(JOB_ID,1,2) : 1번째 문자부터 2글자 SUBSTR(JOB_ID,4) : 4번째 문자부터 끝까지 SELECT
HIRE_DATE,
REPLACE(HIRE_DATE, '/', '-') AS 날짜_하이픈변환
FROM EMPLOYEES;
REPLACE(col, '찾을문자', '바꿀문자')주의: 인자가 3개여야 에러 안 남 (>_<)
-- CONCAT 함수
SELECT
CONCAT('입사일은 ', HIRE_DATE) AS 자기소개
FROM EMPLOYEES;
-- || 연산자
SELECT
'입사일은 ' || HIRE_DATE || '입니다.' AS 자기소개
FROM EMPLOYEES;
CONCAT(a, b) : a와 b를 이어 붙여 a || b : Oracle 고유 방식 SELECT
MOD(10, 2) AS 나머지1, -- 0
MOD( 9, 2) AS 나머지2, -- 1
ROUND(15.65) AS 반올림정수, -- 16
ROUND(15.65,1)AS 반올림소수1, -- 15.7
TRUNC(15.65) AS 버림정수, -- 15
TRUNC(15.65,1)AS 버림소수1 -- 15.6
FROM DUAL;
MOD(x, y) : x를 y로 나눈 나머지 ROUND(n, d?): n을 d자리까지 반올림 (d 미지정 시 정수) TRUNC(n, d?): n을 d자리까지 버림 SELECT SYSDATE FROM DUAL;
SELECT
SYSDATE AS 지금,
SYSDATE + 1 AS 하루_뒤, -- 1일 = 1
SYSDATE + 1/24 AS 한시간_뒤, -- 1시간 = 1/24일
SYSDATE + 1/24/60 AS 일분_뒤, -- 1분 = 1/(24*60)일
SYSDATE + 1/24/60/60 AS 일초_뒤 -- 1초 = 1/(24*60*60)일
FROM DUAL;
SELECT
SYSDATE AS 지금,
ADD_MONTHS(SYSDATE, 1) AS 한달_뒤,
ADD_MONTHS(SYSDATE, -1) AS 한달_전
FROM DUAL;
ADD_MONTHS() 써~ 위 함수들만 잘 응용해도 문자열, 수치, 날짜 처리할 때 훨씬 편해질 거에요!
작성일:2025.07.22
작성자:발라