Database/Oracle

[SQL-Oracle]함수(Function) - 문자함수

sukii 2023. 11. 28. 15:57
반응형

함수(FUCTION) : 매개변수로 전달받은 값을 가공하여 처리 결과값을 반환하는 기능을 제공

⚫단일함수

하나의 값을 매개변수로 전달받아 가공하여 결과값을 반환하는 함수 - 문자함수, 숫자함수, 날짜함수, 변환함수, 일반함수
그룹함수

다수의 값을 매개변수로 전달받아 가공하여 결과값을 반환하는 함수

 

⚫ 문자함수 : 매개변수로 문자값을 전달받아 가공하여 처리 결과값을 반환하는 함수

🔘UPPER(문자값) : 문자값을 전달받아 대문자로 변환하여 반환하는 함수
🔘 LOWER(문자값) : 문자값을 전달받아 소문자로 변환하여 반환하는 함수
형식) SELECT ENAME, UPPER(ENAME), LOWER(ENAME) FROM EMP;

--EMP 테이블에서 사원이름이 ALLEN인 사원의 사원번호,사원이름,급여 검색
SELECT EMPNO,ENAME,SAL FROM EMP HERE ENAME='ALLEN';
--SQL 명령에서는 문자값을 대소문자로 구분하여 비교 처리 
SELECT EMPNO,ENAME,SAL FROM EMP WHERE ENAME='allen';--실행오류


--UPPER 함수 또는 LOWER 함수를 사용하여 컬럼값을 대소문자로 구분하지 않고 비교 처리 가능
SELECT EMPNO,ENAME,SAL FROM EMP WHERE UPPER(ENAME)=UPPER('allen'); --컬럼값과 비교값을 모두 대문자로 변환하여 비교 처리
SELECT EMPNO,ENAME,SAL FROM EMP WHERE LOWER(ENAME)=LOWER('ALLEN'); --컬럼값과 비교값을 모두 소문자로 변환하여 비교 처리

 

🔘 INITCAP(문자값) : 문자값을 전달받아 첫번째 문자만 대문자로 변환하고 나머지 문자는 소문자로 변환하여 반환하는 함수

SELECT ENAME,INITCAP(ENAME) FROM EMP;


🔘 CONCAT(문자값,문자값) : 두 개의 문자값을 전달받아 결합하여 반환하는 함수 - || 기호를 사용하는 것과 유사한 기능 제공

SELECT ENAME,JOB,CONCAT(ENAME,JOB), ENAME||JOB FROM EMP;



🔘 SUBSTR(문자값,시작위치,갯수) : 문자값을 전달받아 시작위치(첨자 - INDEX)부터 갯수만큼의 문자들을 분리하여 반환하는 함수

SELECT EMPNO,ENAME,JOB,SUBSTR(JOB,6,3) FROM EMP WHERE EMPNO=7499;



🔘 LENGTH(문자값) : 문자값을 전달받아 문자의 갯수를 반환하는 함수
SELECT EMPNO,ENAME,JOB,LENGTH(JOB) FROM EMP WHERE EMPNO=7499;

SELECT EMPNO,ENAME,JOB,LENGTH(JOB) FROM EMP WHERE EMPNO=7499;



🔘 INSTR(문자값,검색문자값,시작위치,검색위치) : 문자값을 전달받아 검색문자값을 시작위치(첨자)부터 검색하여 원하는 위치의 문자값에 대한 
--시작첨자를 반환하는 함수

SELECT EMPNO,ENAME,JOB,INSTR(JOB,'A',1,2) FROM EMP WHERE EMPNO=7499;


--매개변수로 전달받은 문자값에서 검색문자값이 없는 경우 [0]를 반환

SELECT EMPNO,ENAME,JOB,INSTR(JOB,'X',1,1) FROM EMP WHERE EMPNO=7499;


🔘 LPAD(문자값,자릿수,채울문자) : 문자값을 전달받아 자릿수의 길이만큼 오른쪽부터 채우고 왼쪽 남는 자리에는 채울문자로 모든 채운 문자값을 반환하는 함수 - 자릿수가 문자값보다 작은 경우 문자값의 앞부분부터 잘라내어 검색

 

🔘  RPAD(문자값,자릿수,채울문자) : 문자값을 전달받아 자릿수의 길이만큼 왼쪽부터 채우고 오른쪽 남는 자리에는 채울문자로 모든 채운 문자값을 반환하는 함수 - 자릿수가 문자값보다 작은 경우 문자값의 앞부분부터 잘라내어 검색

SELECT EMPNO,ENAME,SAL,LPAD(SAL,8,'*'), RPAD(SAL,8,'*') FROM EMP;



🔘 TRIM({LEADING|TRAILING} 제거문자 FROM 문자값) : 문자값을 전달받아 앞(LEADING) 또는 뒤(TRAILING)에 존재하는 제거문자를 삭제하여 반환하는 함수

SELECT EMPNO,ENAME,JOB,TRIM(LEADING 'S' FROM JOB),TRIM(TRAILING 'N' FROM JOB) FROM EMP WHERE EMPNO=7499;



🔘 REPLACE(문자값,검색문자값,치환문자값) : 문자값을 전달받아 검색문자값을 찾아 치환문자값으로 바꾸어 반환하는 함수

SELECT EMPNO,ENAME,JOB,REPLACE(JOB,'MAN','PERSON') FROM EMP WHERE EMPNO=7499;



반응형