본문 바로가기

SQL - 단일행 함수(문자함수)

인포꿀팁 발행일 : 2020-09-01

문자 함수란?

  • 문자 함수는 연산 대상이 문자이며, 반환값은 함수에 따라 문자나 숫자를 반환한다.
  • 숫자 값을 반환하는 문자 함수는 모든 문자 데이터 유형을 인수로 사용할 수 있다.

 


주요 문자 함수 종류


1) LOWER(char)

모든 영문자를 소문자로 변환하여 반환한다.

SELECT LOWER('KOREA 2000') FROM dual;

실행 결과 :

 

2) UPPER(char)

모든 영문자를 대문자로 변환하여 반환한다.

SELECT UPPER('korea 2000') FROM dual;

실행 결과 :

 

3) INICAP(char)

각 단어의 첫 글자를 대문자로, 다른 모든 글자를 소문자로 변환한다.

SELECT INITCAP('korea seoul') FROM dual;

실행 결과 :

 

4) CHR(아스키코드 값)

입력한 숫자에 해당하는 아스키 코드의 문자를 반환한다.

SELECT CHR(65) || CHR(66) FROM dual;

실행 결과 :

 

5) ASCII(char)

입력한 문자열의 첫 문자에 해당하는 아스키 코드값을 10진수로 반환한다.

SELECT ASCII('ABC') FROM dual; : 65

실행 결과 :

 

6) SUBSTR(char, 문자열 시작점, 끝점(생략가능))

문자열에서 시작점에서 시작하여 끝점까지의 문자열을 반환한다. 
끝점을 생략할 시 마지막 문자까지 반환한다.

SELECT SUBSTR('seoul korea',7,3) FROM dual;

실행 결과 :

SELECT SUBSTR('seoul korea',-5,3) FROM dual;

실행 결과 :

 

7) LENGTH(char)

문자열의 길이값을 반환한다.
LENGTHB(문자열) 은 바이트 값을 반환한다.

SELECT LENGTH('대한민국') FROM dual;

실행 결과 :

 

8) INSTR(문자열, 검색할 문자열, 검색을 시작할 시작점(생략 가능))

문자열을  첫문자부터 검색해서 찾은 위치값을 반환한다. 없을시 0을 반환한다.
검색할 시작점을 정할수 있다.

성이 김씨인 사람 출력

SELECT name, rrn FROM emp
WHERE INSTR(name, '김')=1;

실행 결과 :

1번째 문자부터 검색하여 2번째 나오는 문자열 위치

SELECT INSTR('korea seoul','e',1,2) FROM dual;

실행 결과 :

 

9) CONCAT(문자열, 문자열)

문자열을 결합하여 반환한다.

SELECT CONCAT('서울','한국') FROM dual;

실행 결과 :

 

10) LPAD/RPAD(문자열, 총 문자열 길이, 남은 길이에 채울 값)

문자열 길이를 정해 남은 문자열 공간에 지정한 값을 넣어 반환한다.

SELECT LPAD('korea',12,'*') FROM dual; 

실행 결과 :

급여를 그래프로 표현하고 싶을 때

SELECT name, sal, LPAD('*',TRUNC(sal/100000),'*') FROM emp;

실행 결과 :

주민 번호 뒷자리를 가릴 때

SELECT name, RPAD(SUBSTR(rrn,1,8),14,'*') FROM emp;

실행 결과 :

 

 

11) LTRIM/RTRIM(문자열, 삭제할 문자열)

좌우의 공백(삭제할 문자열을 생략할 시)이나 문자열을 제거하여 반환한다.

SELECT ':' || LTRIM('    우리  나라    ' )|| ':' FROM dual;
SELECT ':' || RTRIM('    우리  나라    ' )|| ':' FROM dual;
SELECT ':' || TRIM('    우리  나라    ' )|| ':' FROM dual;

실행 결과 :

부서 이름에서 00부를 00팀으로 바꿀 때

SELECT name, RTRIM(dept, '부')||'팀' FROM emp;

 

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

문자열에서 문자열1에 해당하는 문자를 문자열2로 변환하여 반환한다.

SELECT ':' || LTRIM('    SELECT TRANSLATE('ababccc', 'c','d')FROM dual;

실행 결과 :

문자열에서 영문자 제거

SELECT TRANSLATE('23AC56T','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','0123456789') FROM dual;

 

'DB > Oracle' 카테고리의 다른 글

SQL - 단일행 함수 (날짜 함수)  (0) 2020.09.02
SQL - 단일행 함수 (숫자함수)  (0) 2020.09.01
SQL - SELECT 문  (0) 2020.09.01
관계형 데이터베이스  (0) 2020.08.29
데이터베이스 언어  (0) 2020.08.29

댓글