본문 바로가기

SQL

[Oracle] 문자열 내장 함수

1. SUBSTR - 문자열 자르기

SELECT SUBSTR('HELLO', 1,3) FROM DUAL; // 1번째부터 3개 자르기
SELECT SUBSTR('HEELO',3) FROM DUAL; // 3번째부터 끝까지 자르기 
SELECT SUBSTRB('안녕하세요',1,3) FROM DUAL; // 첫 3바이트 추출 // 안

 

* 참고로 영어는 1byte이지만 한글은 UTF-8 인코딩에서는 3byte , UTF-16 인코딩에서는 2byte를 차지합니다.

 

2. CONCAT - 문자열 합치기

SELECT CONCAT('HE','LLO') FROM DUAL;

SELECT 'HE'||'LLO' FROM DUAL;

 

* 참고로 || 연산이 더 빠릅니다.

 

3. TRIM - 공백 제거

SELECT LTRIM(' HELLO ') FROM DUAL; // 'HELLO '
SELECT RTRIM(' HELLO ') FROM DUAL; // ' HELLO'
SELECT TRIM(' HELLO ') FROM DUAL; // 'HELLO'

 

4. LOWER / UPPER

SELECT LOWER('AbC') FROM DUAL; // abc
SELECT UPPER('AbC') FROM DUAL; // ABC

 

5. REPLACE - 문자열 대치

SELECT REPLACE('WHERE WE ARE', 'WE', 'YOU') FROM DUAL; // WHERE YOU ARE

SELECT TRANSLATE('WHERE WE ARE', 'WE', 'YOU') FROM DUAL; // YHORO YO ARO

 

* 참고로 TRANSLATE는 W는 Y로 E는 O로 바뀝니다. U는요..? 뭐 없습니다. 길이가 같아야 의미가 있는데 (WE와 YOU) 에러는 안난다고 합니다. 

 

6. PAD - 문자열 패딩

SELECT LPAD('HELLO', 10, '0') FROM DUAL; // 00000HELLO
SELECT RPAD('HELLO', 10, '0') FROM DUAL; // HELLO00000

 

7. INITCAP - 첫 글자 대문자

SELECT INITCAP('hi hello') FROM DUAL; // Hi Hello
SELECT INITCAP('hi he안녕llo') FROM DUAL; // Hi He안녕Llo

 

8. INSTR - 문자열 검색

SELECT INSTR('ALL WE NEED TO IS JUST TO...', 'TO') FROM DUAL; // 13
SELECT INSTR('ALL WE NEED TO IS JUST TO...', 'TO', 15) FROM DUAL; // 24
SELECT INSTR('ALL WE NEED TO IS JUST TO...', 'TO', 1, 2) FROM DUAL; // 24

 

* 참고로 공백도 셉니다.

 

9. LENGTH - 문자열 길이

SELECT LENGTH('HELLO') FROM DUAL; // 5

 

10. ASCII - 코드 값 반환

SELECT ASCII('A') FROM DUAL; // 65

 

11. CHR - 문자 반환

SELECT CHR(65) FROM DUAL; // A

'SQL' 카테고리의 다른 글

[Oracle] 날짜 내장 함수  (1) 2024.06.15
[Oracle] 숫자 내장 함수  (0) 2024.06.15
[Oracle] 기초 (MySQL과의 소소한 차이)  (0) 2024.06.08
[MySQL] Index 이해하기  (0) 2024.06.02
[MySQL] Join 알아보기 + 집합 연산 + 서브쿼리  (0) 2024.06.01