ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오라클 - 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;