본문 바로가기

Database

[ SQL ] 문자열 함수들

 

1. 문자열을 합치는 함수 - CONCAT()

 

SELECT CONCAT('KAKAO', 'FRIENDS') FROM DUAL;

 

2. 첫 글자는 대문자, 나머지 문자는 소문자로 바꾸는 함수 - INITCAP()

 

SELECT INITCAP('tHIS IS A bOoK') FROM DUAL;

 

3. 전체 영문을 대문자로 바꾸는 함수 - UPPER()

 

SELECT UPPER('tHIS IS A bOoK') FROM DUAL;

 

4. 전체 영문을 소문자로 바꾸는 함수 - LOWER()

 

SELECT LOWER('tHIS IS A bOoK') FROM DUAL;

 

5. 문자열 왼쪽에 특정문자를 추가하는 함수 - LPAD()

 

SELECT LPAD('ABCDEF', 8, '@') FROM DUAL;

문자열을 8자로 바꾸고 남는 좌측편에 특정문자를 붙여줌

SELECT LPAD('ABCDEF', 9, ' ') FROM DUAL;

문자열을 9자로 바꾸고 남는 좌측편에 특정문자를 붙여줌

 

6. 문자열 오른쪽에 특정문자를 추가하는 함수 - RPAD()

 

SELECT RPAD('FIGHT', 6, '!') FROM DUAL;

문자열을 6자로 바꾸고 남는 우측편에 특정문자를 붙여줌

 

7. 문자열 왼쪽에 공백제거, 특정 문자 제거 - LTRIM()

 

SELECT LTRIM('   123456') FROM DUAL;

문자열 좌측 공백제거

SELECT LTRIM('AAABBBCCC', 'A') FROM DUAL;

문자열 좌측 'A' 모두 제거

SELECT LTRIM('홍길동', '홍') FROM DUAL;

문자열 좌측 '홍' 제거

 

8. 문자열 오른쪽에 공백제거, 특정 문자 제거 - RTRIM()

 

SELECT RTRIM('12345    ') FROM DUAL;

문자열 우측 공백 제거

SELECT RTRIM('12345@', '@') FROM DUAL;

문자열 우측 '@' 제거

SELECT RTRIM('가나다다다', '다') FROM DUAL;

문자열 우측 '다' 모두 제거

 

9. 특정 문자열 대채 함수 - REPLACE()

 

SELECT REPLACE('ABCD@@EFGH', '@', '---') FROM DUAL;

문자열 대체에는 문자열의 길이는 맞춰주지 않아도 된다. 문자열의 '@' 를 '---'으로 대체.

SELECT REPLACE('ABCD@@EFGH', '@@', '%') FROM DUAL;

문자열 대체에는 문자열의 길이는 맞춰주지 않아도 된다. 문자열의 '@@' 를 '%'으로 대체.

SELECT REPLACE('ABCD@@EFGH', '@', ' ') FROM DUAL;

문자열의 '@' 를 ' '으로 대체.

SELECT REPLACE('ABCD@@EFGH', '@', '') FROM DUAL;

문자열의 '@'을 ''으로 대채

SELECT REPLACE('홍길동', '길', '상') FROM DUAL;

문자열의 '길'을 '상'으로 대채

 

10. 문자열 자르기 - SUBSTR()

 

SELECT SUBSTR('123456789', 1, 5) FROM DUAL;

문자열의 첫번째부터 5번째까지 자르기

SELECT SUBSTR('123456789', 4) FROM DUAL;

문자열의 네번째부터 끝까지 자르기

SELECT SUBSTR('123456789', -3) FROM DUAL;

문자열의 뒤에서부터 3번째까지 자르기

SELECT SUBSTR('123456789', -7, 2) FROM DUAL;

문자열의 뒤에서부터 7번째에서 2개 자르기

 

11. 문자열의 길이 표시 함수 - LENGTH()

 

SELECT LENGTH('123 456 789') FROM DUAL;

띄어쓰기도 세어짐

SELECT LENGTH('홍길동') FROM DUAL;

 

12. 문자열의 길이(BYTE)로 표시해주는 함수 - LENGTHB()

 

SELECT LENGTHB('123 456 789') FROM DUAL;

띄어쓰기도 세어짐

SELECT LENGTHB('홍길동') FROM DUAL;

 

13. 문자열에 특정문자 포함 유무, 위치 표시 함수 - INSTR()

 

SELECT INSTR('1+2+3+4+5=15', '+') FROM DUAL;

문자열 처음부터 첫번째 '+' 의 위치를 숫자로 표시

SELECT INSTR('1+2+3+4+5=15', '+', -1) FROM DUAL;

문자열 맨뒤부터 첫번째 '+'가 처음부터 몇번째인지를 숫자로 표시

SELECT INSTR('1+2+3+4+5=15', '*') FROM DUAL;

문자열에 포함되지 않은 문자열을 찾을 경우 0을 RETURN

 

14. 양쪽 공백 제거 함수 - TRIM()

 

SELECT TRIM('   ABC   ') FROM DUAL;

양쪽 공백 제거

SELECT TRIM('AAABCDEFAAA', 'A') FROM DUAL;

모든 공백이 제거되지는 않음

SELECT TRIM('AAABCDEFAAA', 'A') FROM DUAL;

문자열에 사용할 수는 없어서 양쪽의 특정문자를 제거하려면 RTRIM, LTRIM 을 써줘서 해결해야 겠다.

 

'Database' 카테고리의 다른 글

[ SQL ] TRUNC(TRUNCATE) VS ROUND  (0) 2021.05.03
[ SQL ] TO_CHAR 함수  (0) 2021.05.03
[ SQL ] PROCEDURE(프로시져), PACKAGE(패키지)  (0) 2021.05.02
[ SQL ] FUNCTION(함수)  (0) 2021.05.01
[ SQL ] WHERE EXISTS, NOT EXIST  (0) 2021.05.01