SQL - 단일행 함수(문자함수)
문자 함수란?
- 문자 함수는 연산 대상이 문자이며, 반환값은 함수에 따라 문자나 숫자를 반환한다.
- 숫자 값을 반환하는 문자 함수는 모든 문자 데이터 유형을 인수로 사용할 수 있다.
주요 문자 함수 종류
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 |
댓글