데이터베이스(DB: Database)/SQL

[SQL] 오라클(Oracle) 문자열 함수 정리

잇트루 2023. 5. 26. 01:35
반응형

LOWER(문자열) / UPPER(문자열) / INITCAP(문자열)

LOWER : 문자열을 모두 소문자로 변환하여 반환한다.

UPPER : 문자열을 모두 대문자로 변환하여 반환한다.

INITCAP : 문자열의 첫 번째 문자는 대문자, 나머지는 소문자로 변환하여 반환한다.

SELECT LOWER('hello ORACLE!') AS LOWER,
    UPPER('hello ORACLE!') AS UPPER,
    INITCAP('hello ORACLE!') AS INITCAP
FROM dual;
LOWER UPPER INITCAP
hello oracle! HELLO ORACLE! Hello Oracle!

 

 

LENGTH(문자열)

문자열의 길이를 반환한다.

SELECT LENGTH('Hello Oracle') AS LENGTH
FROM dual;
LENGTH
12

 

 

CONCAT(문자열1, 문자열2) / ||

문자열1과 문자열2를 합친다.

SELECT CONCAT('Hello', 'World') AS CASE1,
    CONCAT('Oracle', 'SQL') AS CASE2
FROM dual;
SELECT 'Hello' || 'World' AS CASE1,
    'Oracle' || 'SQL' AS CASE2
FROM dual;
CASE1 CASE2
HelloWorld OracleSQL

 

SELECT CONCAT(CONCAT('Hello', ' '), 'World') AS CASE1,
    CONCAT(CONCAT('Oracle', ' '), 'SQL') AS CASE2
FROM dual;
SELECT 'Hello' || ' ' || 'World' AS CASE1,
    'Oracle' || ' ' || 'SQL' AS CASE2
FROM dual;
CASE1 CASE2
Hello World Oracle SQL

 

 

SUBSTR(문자열, 시작 위치, 길이)

문자열의 시작 위치부터 길이만큼 자른 후 반환한다.

  • 길이는 생략 가능하며, 생략 시 문자열의 끝까지 반환한다.
SELECT SUBSTR('Hello Oracle', 2) AS CASE1,
    SUBSTR('Hello Oracle', 7, 5) AS CASE2
FROM dual;
CASE1 CASE2
ello Oracle Oracl

 

문자열을 뒤에서부터 자를 수도 있다.

SELECT SUBSTR('Hello Oracle', -2) AS CASE1,
    SUBSTR('Hello Oracle', -8, 5) AS CASE2
FROM dual;
CASE1 CASE2
le o Ora

 

 

LPAD(문자열, 길이, 문자) / RPAD(문자열, 길이, 문자)

입력받은 문자열에서 길이까지 입력 문자로 채운다.

LPAD : 왼쪽에 입력 문자를 채운다.

SELECT LPAD(10, 5, '0') AS CASE1,
    LPAD(11, 5, '0') AS CASE2,
    LPAD(12, 5, '0') AS CASE3
FROM dual;

 

CASE1 CASE2 CASE3
00010 00011 00012

 

 

RPAD : 오른쪽에 입력 문자를 채운다.

SELECT RPAD(1, 5, '0') AS CASE1,
    RPAD(2, 5, '0') AS CASE2,
    RPAD(3, 5, '0') AS CASE3
FROM dual;
CASE1 CASE2 CASE3
10000 20000 30000

 

 

TRIM(문자열) / LTRIM(문자열, 옵션) / RTRIM(문자열, 옵션)

TRIM : 문자열의 양쪽 공백(’ ‘)을 제거한다.

SELECT TRIM('   Hi   ') AS CASE1,
    TRIM('   Hello   ') AS CASE2
FROM dual;
CASE1 CASE2
Hi Hello

 

LTRIM : 문자열의 왼쪽 공백을 제거하거나, 특정 문자나 반복적인 문자를 제거한다.

SELECT LTRIM('   Hi   ') AS CASE1,
    LTRIM('   ?   !') AS CASE2,
    LTRIM('HiHiHello', 'Hi') AS CASE3,
    LTRIM('. Hi Hello', 'Hi') AS CASE4,
    LTRIM('Hello Hi Haha', 'H') AS CASE5,
    LTRIM('HaHaHaHaH HaHaHa', 'Ha') AS CASE6
FROM dual;
CASE1 CASE2 CASE3 CASE4 CASE5 CASE6
Hi. ? ! ello . Hi Hello ello Hi Haha HaHaHa

 

RTRIM : 문자열의 오른쪽 공백을 제거하거나, 특정 문자나 반복적인 문자를 제거한다.

SELECT RTRIM('   Hi   ') AS CASE1,
    RTRIM('?   !   ') AS CASE2,
    RTRIM(' Hi Hello HiHiHi', 'Hi') AS CASE3,
    RTRIM('   Hello Hi Hi HiHi', 'Hi') AS CASE4,
    RTRIM('HHH HHH HHH HHH', 'H') AS CASE5,
    RTRIM('HHH HHH HHH HHH ', 'HHH ') AS CASE6
FROM dual;
CASE1 CASE2 CASE3 CASE4 CASE5 CASE6
Hi ? ! Hi Hello Hello Hi Hi HHH HHH HHH  

 

 

TRANSLATE(문자열1, 문자열2, 문자열3)

문자열1에서 문자열2를 문자열3으로 대체

  • 문자열2와 문자열3은 1:1로 대응함
  • 문자열2가 hw, 문자열3이 HW이면, h는 H와, w는 W와 대응하여 대체(CASE1, CASE5)
  • 만약, 대응되는 문자가 없는 경우 문자열1의 해당 문자는 제거됨(CASE4)
SELECT TRANSLATE('hello world', 'hw', 'HW') AS CASE1,
    TRANSLATE('hello world', 'l', 'e') AS CASE2,
    TRANSLATE('hello world', 'o', ' ') AS CASE3,
    TRANSLATE('hello world', 'hlo', '-') AS CASE4,
    TRANSLATE('hello world', 'hw', 'WH') AS CASE5
FROM dual;

 

CASE1 CASE2 CASE3 CASE4 CASE5
Hello World heeeo wored hell w rld -e wrd Wello Horld

 

 

REPLACE(문자열1, 문자열2, 문자열3)

문자열1에서 문자열2를 문자열3로 대체

  • 문자열1에 존재하는 문자열2가 완벽히 일치하지 않으면 대체 불가능
SELECT REPLACE('hello world', 'hello', 'oracle') AS CASE1,
    REPLACE('hello world', 'he', 'l') AS CASE2,
    REPLACE('hello world', 'hw', 'HW') AS CASE3,
    REPLACE('hello world', 'hello world', 'Hello World') AS CASE4,
    REPLACE('hello world', 'hel', 'Oracle') AS CASE5
FROM dual;
CASE1 CASE2 CASE3 CASE4 CASE5
oracle world lllo world hello world Hello World Oraclelo world

 

반응형