- 스칼라 함수 (단일행)
문자열 추출
SUBSTR(char, m[,n])
EX1) SELECT SUBSTR('seoul korea', 7, 3) FROM dual ; -- 7번째부터 3개추출(주위:오라클은 인덱스가 1부터)
EX2) SELECT SUBSTR('seoul korea', -5, 3) FROM dual ; -- 뒤에서 5번째부터 3개추출
EX3) SELECT SUBSTR('seoul korea', 7) FROM dual ; -- 7번째부터 끝까지
SUBSTR과 WHERE의 결합
SELECT name, ssn, buseo
FROM insa
WHERE (SUBSTR(ssn,8,1)='1';
=> 설명
insa 테이블에서 SELECT를 사용하여 보고싶은 컬럼을 선택하고
WHERE을 이요하여 ssn 컬럼에 조건을 주어서 출력결과를 한정시켰다.
** 오라클은 자료형에 관대하며 형변환을 하지 않아도 숫자로 변환 가능한 경우 숫자와 연산하면 자동으로 숫자로 변환된다.
** 오라클은 리터럴(상수)이 아니면 대소문자를 구분하지 않는다.
- 문자열 길이
LENGTh(문자열)
EX) SELECT LENGTH('대한민국') 결과 => 4
- 문자열 바이트 수
LENGTHB(문자열)
EX) SELECT LENGTHB('대한민국') 결과 => 8
- 문자열의 위치를 반환
INSTR(컬럼또는수식, '문자열' [,m][,n])
EX) SELECT INSTR('korea', 'e') FROM DUAL; 결과 => 4 (4번째에 e가 있다)
- 빈부분에 문자열 채우기
LPAD(컬럼또는수식, n [, 문자열]) => 왼쪽으로 채운다
RPAD(컬럼또는수식, n [, 문자열]) => 오른쪽으로 채운다.
EX1) SELECT LPAD('korea', 12, '*') FROM DUAL; 결과 => *******korea
EX2) SELECT LPAD(basicpay/10000, 10, '*') FROM insa; 결과 => 급여를 만원단위로 나누고 왼쪽으로 *로 채운다.
- 문자열 치환
REPLACE(text, search_string [,치환문자열])
해당컬럼, 바꾸려는 문자,
EX) SELECT name, buseo, REPLACE(buseo, '부', '팀') FROM insa; => 문자를 가운데 넣고
- 공백 제거
RTRIM, LTRIM, TRIM
SELECT '우리나라 ' || '*', RTRIM('우리나라 ') || '*' FROM DUAL;
SELECT name, RTRIM(buseo, '부') || '팀' FROM insa;
SELECT '*' || ' 우리 ' || '*', '*' || TRIM(' 우리 ') || '*' FROM DUAL;
'오라클' 카테고리의 다른 글
오라클 NULL : 값이 존재하지 않는 상태 (0) | 2013.05.30 |
---|---|
오라클 CASE ~ END : 조건에 따라 실행을 다르게 하는 조건문 (0) | 2013.05.30 |
오라클 날짜 표현 (0) | 2013.05.30 |
3.변환,절삭,나머지,반올림 (0) | 2013.05.29 |
1.오라클 기초 (0) | 2013.05.28 |