쌓고 쌓다
[Oracle] 문자열 조작(변환) 함수 본문
INITCAT 함수
인수로 입력되는 칼럼이나 표현식의 값에서 첫 번째 영문자를 대문자로 변환
INITCAP (expr | column)
- 김영균 학생의 아이디를 출력한다. (첫문자는 대문자로)
SELECT name, userid, INITCAP(userid)
FROM student
WHERE name='김영균';
LOWER, UPPER 함수
인수로 주어진 문자열 전체를 소문자 또는 대문자로 변환
LOWER( expr | column )
UPPER( expr | column )
- 학번이 20101인 학생의 아이디를 소문자와 대문자로 변환
SELECT name, userid, LOWER(userid), UPPER(userid)
FROM student
WHERE studno=20101;
LENGTH, LENGTHB 함수
문자열의 길이, 바이트 수를 반환
LENGTH ( expr | column )
LENGTHB ( expr | column )
- 부서 이름을 문자 수(길이)와 바이트 수로 각각 출력
SELECT dname, LENGTH(dname), LENGTHB(dname)
FROM department;
문자 조작 함수
종류 | 의미 | 예 |
CONCAT | 두 문자열을 결합, '||'와 동일 | CONCAT('sql', 'plus') -> sqlplus |
SUBSTR | 문자열 일부를 추출 | SUBSTR('SQL*Plus', 5, 4) -> Plus |
INSTR | 특정 문자의 첫번째 위치를 반환 | INSTR('SQL*Plus', '*') -> 4 |
LPAD | 오른쪽 정렬후 왼쪽에 지정문자 삽입 | LPAD('sql', 5, '*') -> **sql |
RPAD | 왼쪽 정렬후 오른쪽에 지정문자 삽입 | RPAD('sql', 5, '*') -> sql** |
LTRIM | 왼쪽의 지정문자 삭제 | LTRIM('*sql', '*') -> sql |
RTRIM | 오른쪽의 지정문자 삭제 | RTRIM('sql*', '*') -> sql |
SUBSTR 함수
문자열의 일부를 추출
SUBSTR ( expr | column, m, n )
문자열에서 m번째 문자부터 n개의 문자 추출
m이 음수이면 시작 위치는 문자열의 마지막
n을 생략하면 m부터 끝 문자까지 추출
- 1학년 학생의 주민번호에서 생년월일과 태어난 달을 추출
SELECT name, idnum, SUBSTR(idnum, 1, 6) "생년월일", SUBSTR(idnum 3, 2) "태어난달"
FROM student
WHERE grade='1';
INSTR 함수
특정 문자의 첫 위치를 반환
INSTR ( expr | column, char )
* 시작 위치, 몇번째 등장 옵션을 지정할 수 있지만 생략함
- 부서 이름에서 '과' 글자의 위치를 출력
SELECT dname, INSTR(dname, '과')
FROM department;
-> 찾는 글자가 없는 경우, 0을 반환
- 학생의 전화번호에서 지역번호를 출력
SELECT tel, SUBSTR(tel, 1, INSTR(tel, ')')-1)
FROM student;
-> 연락처에서 INSTR로 ')'의 위치를 찾아 SUBSTR을 통해 1부터 ')'의 위치 앞까지를 추출
LPAD, RPAD 함수
문자열이 일정한 크기가 되도록 왼쪽 또는 오른쪽에 지정 문자 삽입 ( 길이가 아닌 크기임을 유의. )
LPAD( expr | column, m, char )
RPAD( expr | column, m, char )
m 크기가 되도록 왼쪽 또는 오른쪽에 char 문자 삽입
char이 없으면 공백 삽입
- 교수 테이블에서 직급의 왼쪽에 '*' 문자를 삽입하여 10바이트로 출력하고
교수 아이디 칼럼은 오른쪽에 '+' 문자를 삽입하여 12바이트로 출력
SELECT LPAD(position, 10, '*'), RPAD(userid, 12, '+')
FROM professor;
LTRIM, RTRIM 함수
특정 문자를 제거
삭제할 문자를 지정하지 않으면 문자열의 앞뒤 부분에 있는 공백 문자 제거
LTRIM( expr | column, char )
RTRIM( expr | column, char )
- 부서 이름의 마지막 글자인 '과'를 삭제하여 출력
SELECT dname, RTRIM(dname, '과')
FROM department;
'프로그래밍 > SQL' 카테고리의 다른 글
[Oracle] 날짜 함수, 타입 변환 (1) | 2022.10.08 |
---|---|
[Oracle] ROUND, TRUNC, MOD, CEIL, FLOOR 함수 (1) | 2022.10.08 |
[Oracle] Drop table후 휴지통 비우기 (0) | 2022.10.02 |
[Oracle] 집합 연사자 (UNION, UNION ALL, MINUS, INTERSECT) (0) | 2022.10.02 |
[Oracle] WHERE, 비교 연산자, 논리연산자, SQL 연산자, NULL, 정렬 (0) | 2022.10.02 |