1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | --[ 문자형 함수 ] --문자열과 문자열을 연결하는 함수 : CONCAT(char1,char2) or || 를 이용 select CONCAT( 'HELLO' , '_World' ), CONCAT( 'good' , '_bad' ) from dual; select 'Hello' || 'World' from dual; -- ||연산자를 이용한 문자열 합치기 select sal || '원' from EMP; --단어의 첫 문자를 대문자로 변환 : INITCAP(char) select INITCAP( 'the soap' ) from dual; -- The Soap select INITCAP( 'good/bad morning' ) from dual; -- Good/Bad Morning --LOWER(char) / UPPER(char) select LOWER ( 'ABC' ) from dual; select UPPER ( 'abc' ) from dual; --LPAD() select LPAD( 'good' ,6) from dual; -- good이란 글자를 6자리로 늘림 select lpad( 'good' ,6, '@' ) "LPAD1" from dual; -- @@good 6자리로 확대하고 왼족에 3번째 -- 인자 문자를 채움 select lpad( 'good' ,8, 'L' ) from dual; -- LLLLgood -- RPAD() select RPAD( 'good' ,6, '#' ) from dual; -- good## -- 단, 한글은 2바이트니까 주의해야한다. select RPAD( 'good' , '10' , '홍길동' ) from dual; -- good(4byte) + '홍길동'(6byte) 총 10byte필요. -- trim() : LTRIM(), RTRIM(), trim() select LTrim( 'goodbye' , 'g' ) from dual; -- oodbye 왼쪽에 있는 g값을 지움 select lTrim( 'goodbye' , 'o' ) from dual; -- goodbye 중간에 기여잇는 경우는 지울 수 없음 아래처럼 해야함 select lTrim( 'goodbye' , 'go' ) from dual; -- dbye select RTrim( 'goodbye' , 'go' ) from dual; -- goodbye 오른쪽에서 go를 찾으니까 없음으로 안지워짐 select RTrim( 'goodbye' , 'e' ) from dual; -- 왼쪽 삭제 'leading' select trim(leading from ' good ' ) from dual; -- good select length(trim(leading from ' good ' )) from dual; -- 5 : leading은 왼쪽기준 공백 제거함으로 뒤에 5개 길이가 나옴 -- 오른쪽 삭제 'trailing' select trim(trailing from ' good ' ) from dual; -- 양쪽 : 'both' select trim(both from ' good ' ) from dual; -- 양쪽 공백을 지움 -- 왼쪽기준에서 g문자를 지움 select trim(leading 'g' from 'good' ) from dual; -- ood --substr('문자열',시작인덱스,문자열개수(길이)) : 부분적인 문자열을 뽑아내는 함수(시작 인덱스가 1임!!) select substr( 'good morning john' ,8,4) from dual; -- rnin select substr( 'good morning john' ,6) from dual; -- morning john 길이를 생략하면 그 뒤로 쭉 다 출력된다. select substr( 'good morning john' ,-4) from dual; -- john 오른쪽 끝에서부터 거꾸로... select substr( 'good morning john' ,-4,2) from dual; -- jo select substr( 'good morning john' ,instr( 'good morning john' , 'morning' ,1),length( 'morning' )) from dual; --replace('원문자열','바꿀문자열','교체할문자열') : 문자열 교체 select replace ( 'good morning john' , 'good' , 'switch' ) from dual; -- good문자열을 switch로 변경 : switch morning john --translate() : replace와 약간 다른데 -- translate('문자열','You','We')라하면 1:1로 대응해서 바끼게된다. Y는 W로 o는 e로 select translate( 'You are not alone' , 'You' , 'We' ) from dual; -- We are net alene -- ASCII() : 각 문자열의 아스키값을 구함 select ascii( 'a' ) from dual; -- 97 -- 문자열 길이 : length() select length( '안녕' ) from dual; -- 2 -- instr('문자열','찾고자하는문자',어느인덱스부터찾을지,몇번째꺼찾을지) : 찾고자하는 문자열의 시작 위치를 반환(시작인덱스는 1부터...) select instr( 'good morning john' , 'mor' ,1) from dual; -- 6 select instr( 'good morning john' , 'n' ,1,2) from dual; -- 11 두번째 n시작위치를 구한다. -- 1번째 인덱스부터 찾기 시작해서 2번째 n의 위치를 가져오는 것 |
'스터디 > DB(ORACLE)' 카테고리의 다른 글
ORACLE 그룹핑 GROUP BY, HAVING, ROLLUP (0) | 2017.09.05 |
---|---|
ORACLE 날짜함수, 변환함수, decode(), case() (0) | 2017.09.04 |
ORACLE 집계함수, 숫자함수 (0) | 2017.09.04 |
이채남저 오라클실습 자료(개인 보관용) (1) | 2017.08.31 |
ORACLE DB 특수문자 제거, 숫자만 빼고 다 제거 쿼리문 (1) | 2017.08.22 |