-
오라클 - SQL 문자함수웹프로그래밍/데이터베이스 2018. 6. 17. 17:21
--##1. 그룹함수
--30번 부서 사원의 총 급여
SELECT DEPTNO, SUM(SAL) FROM EMP GROUP BY DEPTNO HAVING DEPTNO=30;
--##2. 문자함수(UPPER, LOWER, INITCAP, CONCAT, LENGTH, SUBSTR, INSTR, LPAD, TRIM)
--입력한 문자를 소문자로 변환
SELECT 'DataBase',LOWER('DataBase') FROM DUAL;
--부서번호가 10인 사원명을 모두 소문자로 변환
SELECT ENAME,LOWER(ENAME) FROM EMP;
--직급이 'manager'인 사원을 검색
SELECT EMPNO, ENAME, JOB FROM EMP WHERE JOB=UPPER('manager');
SELECT EMPNO, ENAME, JOB FROM EMP WHERE LOWER(JOB)='manager';
--첫 글자만 대문자 나머진 소문자
SELECT INITCAP('DATA BASE PROGRAM') FROM DUAL;
--부서가 10번인 사원의 이름의 첫 글자만 대문자로
SELECT EMPNO, INITCAP(ENAME) FROM EMP WHERE DEPTNO=10;
--두 문자를 연결
SELECT CONCAT('Data','Base') FROM DUAL;
--글자 개수를 구한다.
SELECT LENGTH('DataBase'),LENGTH('데이터베이스') FROM DUAL;
--10번 부서 사원 이름 길이
SELECT DEPTNO, EMPNO, ENAME, LENGTH(ENAME) FROM EMP WHERE DEPTNO=10;
--이름이 4글자인 직원 이름을 소문자로 출력
SELECT EMPNO, LOWER(ENAME) FROM EMP WHERE LENGTH(ENAME)=4;
--대상 문자열의 1번째~3번째까지 추출
SELECT SUBSTR('DataBase',1,3) FROM DUAL;
--뒤에서 4번째부터 시작
SELECT SUBSTR('DataBase',-4,3) FROM DUAL;
--20번 부서 사원의 입사년도
SELECT ENAME, HIREDATE, SUBSTR(HIREDATE,1,2) FROM EMP WHERE DEPTNO=20;
--특정 문자의 위치를 구함
SELECT INSTR('DataBase','B') FROM DUAL; -->5
--문자열 3번째부터 1번째로 나온 '이'의 위치
SELECT INSTR('데이터베이스','이',3,1) FROM DUAL; -->5
--문자의 왼쪽을 $으로 채운다. (문자 포함 총 20자리)
SELECT LPAD('DataBase',20,'$') FROM DUAL;
--오른쪽을 채운다.
SELECT RPAD('DataBase',20,'$') FROM DUAL;
--TRIM: 특정 문자를 잘라내낸다.
--문자 양쪽 끝에 'a'를 잘라냄
SELECT TRIM('a' FROM 'aaaaDataBase programingaaaa') FROM DUAL;
SELECT ENAME, TRIM('S' FROM ENAME), TRIM('H' FROM ENAME) FROM EMP WHERE ENAME='SMITH';
--왼쪽 공백 제거
SELECT TRIM(LEADING FROM ' ABCD ') FROM DUAL;
--오른쪽 공백 제거
SELECT TRIM(TRAILING FROM ' ABCD ') FROM DUAL;
--양쪽 공백 제거
SELECT TRIM(BOTH FROM ' ABCD ') FROM DUAL;
'웹프로그래밍 > 데이터베이스' 카테고리의 다른 글
오라클 SQL - 일반함수, 그룹함수 (0) 2018.06.20 오라클 SQL - 숫자함수, 날짜함수, 변환함수 (0) 2018.06.20 오라클 SELECT 문 - 데이터 추출 (0) 2018.06.17 SQL 기초 (0) 2018.06.17 오라클 교육용 계정 - SCOTT 생성 및 활성화 (0) 2018.06.17