Oracle - 함수

정원·2022년 12월 21일

Oracle

목록 보기
3/3

22.12.21 Oracle 함수

문자열 함수

lower(소문자), initcap(앞글자 대문자), upper(대문자)

SELECT 'abcDEF', LOWER('abcDEF'), INITCAP('abcDEF'), UPPER('abcDEF')
FROM dual;

✨ dual 테이블
sys가 소유하는 오라클의 표준 테이블로서,
오직 한 행에 한 컬럼만 담고 있는 dummy table이다.
일시적인 산술 연산이나 날짜 연산 등을 주로 사용한다.
모든 사용자가 접근할 수 있다.

SELECT last_name FROM employees
WHERE LOWER(last_name) = 'austin';

SELECT last_name FROM employees
WHERE UPPER(last_name) = 'AUSTIN';

SELECT last_name FROM employees
WHERE INITCAP(last_name) = 'Austin';

length(길이), INSTR(문자 찾기)

INSTR : 인덱스값 반환, 없으면 0

SELECT 'abcdef' AS ex, LENGTH('abcdef'), INSTR('abcdef','z')
FROM dual;

SELECT first_name, LENGTH(first_name), INSTR(first_name,'a')
FROM employees;

substr(문자열 자르기),concat(문자 연결)

  • substr(문자,시작,끝)
  • concat(문자,연결값)
SELECT 'abcdef' AS ex, SUBSTR('abcdef',1,4), CONCAT('abc','def')
FROM dual;

SELECT first_name, SUBSTR(first_name, 1, 3), CONCAT(first_name, last_name)
FROM employees;

lpad,rpad

  • LPAD,RPAD(문자열,갯수,나머지 채울 문자)
    좌,우 지정문자열로 채우기
SELECT LPAD('abc',10,'*') FROM dual;
SELECT RPAD('abc',10,'*') FROM dual;

trim

  • LTRIM,RTRIM(내용,지울내용)
  • TRIM 양쪽공백제거
SELECT LTRIM('javascript_java','java') FROM dual;
SELECT RTRIM('javascript_java','java') FROM dual;

SELECT TRIM('     java    ') FROM dual;

replace(기존문장, 기존문자열, 바꿀문자열)

SELECT REPLACE ('My dream is a president', 'president', 'doctor')
FROM dual;
-- president -> doctor

SELECT REPLACE('My dream is a president',  ' ', '')
FROM dual;
-- 공백제거

SELECT REPLACE(REPLACE('My dream is a president', 'president', 'doctor'), ' ', '')
FROM dual;
-- 위에 두 질의 한 번에 쓰기

SELECT REPLACE(CONCAT('hello', 'world!'), '!', '?')
FROM dual;
-- 문자열 연결 후 REPLACE

0개의 댓글