OneDev

[SQL] 3. 내장함수(2) - 문자열 처리함수 본문

DB\SQL/SQL(Oracle)

[SQL] 3. 내장함수(2) - 문자열 처리함수

one_dev 2023. 2. 6. 23:45

▣ CONCAT(char 1, char2)

concat 함수는 Cocatenation의 약자로, 두 문자를 결합하는 역할을 한다

select concat('Oracle', 'Korea') from dual
-- > Oracle Korea

▣ INITCAP(char)

주어진 문자열에서 각 단어의 첫 글자를 대문자로 변환시켜주는 함수

select initcap('oracle korea') from dual
-- > Oracle Korea

▣ LOWER(char)

문자열을 소문자로 변환시켜주는 함수

 

▣UPPER(char)

문자열을 대문자로 변환시켜주는 함수

 

▣ LPAD(char1, n, char2)

문자열(char1) 왼쪽에 다른 문자열(char2)을 끼워 넣는 역할을 한다

  • n : 반환되는 문자열의 전체 길이
select lpad('Gil-dong', 10, 'G') from dual;
--> GGil-dong

▣ RPAD(char1, n, [char2])

LPAD와는 반대로, 오른쪽에 문자열을 끼워 넣는 역할을 한다.

 

▣ SUBSTR(char, m,  [n])

문자열의 일부를 추출하는 함수. 문자열의 m 번째 자리부터 길이가 n인 문자열을 반환한다.

(m 이 음수일경우, 반대방향으로 n개의 문자를 반환한다)

select substr('Hong-Gildong', 3, 3) from dual;
--> ng-

 

▣ LENGTH(char)

문자열의 길이를 리턴

select length('ABCDE') from dual;
--> 5

▣ REPLACE(char, str1, str2)

문자열의 특정문자(str1)를 다른문자(str2)로 변환

select replace('miracle', 'mi', 'o') from dual;
--> oracle

▣ INSTR

  • 문자열이 포함되어 있는지를 조사해 그 위치를 리턴
  • 지정한 문자열이 발견되지 않으면 0이 반환된다
  • Syntax : SELECT INSTR( str1, str2, n, m) FROM TABLE
    • str1 : 검색 대상이 될 문자열
    • str2 : 찾고자 하는 문자열
    • n : 검색 시작위치 (생략 가능, 생략시 왼쪽부터 검색)
    • m : 찾는 문자열이 여러개 있을경우, m 번쨰 검색되는 str2 의 위치를 반환
select instr('corporate floor', 'ok') from dual;
--> 0 : 검색결과 해당 문자열 없음

select instr('corporate floor', 'or') from dual;
--> 2 : 왼쪽에서 부터 검색을 시작해 처음 만나는 or 의 위치를 반환 

select instr('corporate floor', 'or', 3) from dual;
--> 5 : 왼쪽에서 3번쨰부터 검색을 시작해 처음 만나는 or 의 위치를 반환

select instr('corporate floor', 'or', 3, 2) from dual;
--> 14 : 왼쪽에서 3번째부터 검색을 시작해 2번째 or 의 위치를 반환

 

 

▣ TRIM

  • 특정한 문자를 제거
  • 제거할 문자를 입력하지 않으면 기본적으로 공백이 제거된다
  • 리턴값의 데이터 타입 : VARCHAR2 
  • LTRIM : 왼쪽의 지정한 문자를 제거
  • RTRIM : 오른쪽의 지정한 문자를 제거
-- TRIM
select trim(0 from 0001234567000) from dual;
--> 1234567

-- LTRIM
select ltrim('xyxXyABCD', xy) from dual;
--> XyABCD

-- RTRIM
select rtrim('ABCDyxXxy', 'xy') from dual;
--> ABCDyxX
Comments