IT STUDY LOG
[Oracle] 단일 행 함수 - 문자 함수 본문
# 문자 함수
LOWER, UPPER, INITCAP
- LOWER : 소문자로 변환
- UPPER : 대문자로 변환
- INITCAP : 모든 단어의 첫문자를 대문자로 변환
SELECT ename, job, ename||' '||job name
, LOWER(ename||' '||job) "lower name"
, UPPER(LOWER(ename||' '||job)) "upper name"
, INITCAP(ename||' '||job) "initcap name"
FROM emp
-- DATA값의 경우 대소문자를 구분하므로 조건 절에서 주로 사용
WHERE LOWER(ename) = 'smith'
OR UPPER(ename) = 'SMITH';
CONCAT
- 두 문자열을 연결
SELECT CONCAT(ename, job)
FROM emp;
SELECT CONCAT(CONCAT(ename, ' '), job) -- CONCAT을 여러번 사용
FROM emp;
SUBSTR
- 문자열 추출
SELECT ename, job, ename||' '||job name
, SUBSTR(ename||' '||job, 1, 3) sub1
, SUBSTR(ename||' '||job, 7, 4) sub2
, SUBSTR(ename||' '||job, -3, 2) sub3
FROM emp
-- WHERE SUBSTR(ename, 1, 1) = 'S';
WHERE SUBSTR(ename, -2, 2) = 'ER';
INSTR
- 문자열 내 특정 문자열 위치를 숫자로 표시
- (ex) INSTR(SQL기본책, 'ORDER BY', 첫번째 페이지부터, 두번째 나타나는 위치)
SELECT ename, job, ename||' '||job name
, INSTR(ename||' '||job, 'E', 1, 1) instr1
, INSTR(ename||' '||job, 'E', 10, 1) instr2
, INSTR(ename||' '||job, 'E', 1, 2) instr3
FROM emp;
LENGTH, CHR, ASCII
- LENGTH : 문자열 길이를 숫자값으로 표시
- CHR : ASCII 코드 값 반환
- ASCII : 문자의 ASCII 코드값 변환
SELECT ename, job, LENGTH(ename), CHR(45), ASCII('A')
FROM emp;
LPAD, RPAD
- LPAD : 문자열을 제외한 왼쪽 공간에 지정한 문자로 채움
- RPAD : 문자열을 제외한 오른쪽 공간에 지정한 문자로 채움
SELECT ename, job, LENGTH(ename) "length"
, LPAD(ename, 10, '*') "lpad"
, RPAD(ename, 10, '~') "rpad"
FROM emp;
LTRIM, RTRIM
- LTRIM : 대상 문자열의 오른쪽부터 지정한 문자열 제거
- RTRIM : 대상 문자열의 왼쪽부터 지정한 문자열 제거
SELECT 'S'||ename||'R' "name"
, LTRIM('S'||ename||'R', 'S') "ltrim"
, RTRIM('S'||ename||'R', 'R') "rtrim"
FROM emp;
TRIM
- LTRIM + RTRIM 앞 뒤에 나오는 특정 문자를 제거
- 유일하게 인자 받아들이는 방법이 다름
SELECT 'S'||ename||'S' "name"
, TRIM('S' FROM 'S'||ename||'S') "trim"
FROM emp;
SELECT 'S'||ename||'S' "name"
, TRIM(LEADING 'S' FROM 'S'||ename||'S') "leading_trim" -- RTRIM처럼 동작
FROM emp;
SELECT 'S'||ename||'S' "name"
, TRIM(TRAILING 'S' FROM 'S'||ename||'S') "trailing_trim" -- LTRIM처럼 동작
FROM emp;
SELECT 'S'||ename||'S' "name"
, TRIM(BOTH 'S' FROM 'S'||ename||'S') "both_trim" -- TRIM처럼 동작
FROM emp;
REPLACE, TRANSLATE
- REPLACE : 특정 문자열을 다른 문자열로 대체
- TRANSLATE : 한글자 단위의 변환이므로 글자 수가 맞아야 문자 대체 가능
SELECT ename||' '||job "name"
, TRANSLATE(ename||' '||job, 'LE', '*!') "translate" -- L -> *, E -> !
, REPLACE(ename||' '||job, 'AN', '????') "replace"
FROM emp;
'computer science > database' 카테고리의 다른 글
[Oracle] 단일 행 함수 - 날짜 함수 (0) | 2023.08.30 |
---|---|
[Oracle] 단일 행 함수 - 날짜 계산 결과 (0) | 2023.08.30 |
[Oracle] 단일 행 함수 - 숫자 함수 (0) | 2023.08.30 |
[Oracle] 단일 행 함수 (0) | 2023.08.30 |
[Oracle] SELECT문 (0) | 2023.08.30 |
Comments