업무활용300%

오라클 scott 예제

소고기집주인 2022. 1. 26. 14:24
728x90

--emp 테이블에서 사원번호, 사원이름, 입사일을 출력하는데 입사일이 빠른 사람순으로 정렬하시오.

SELECT
    empno,
    ename,
    hiredate
FROM
    emp
ORDER BY
    hiredate ASC;
    
--emp 테이블에서 사원이름, 급여, 연봉을 구하고 연봉이 많은 순으로 정렬하시오.

SELECT
    ename,
    sal,
    sal * 12
FROM
    emp
ORDER BY
    sal * 12 DESC;

--10번 부서와 20번부서에서 근무하고 있는 사원의 이름과 부서번호를 출력하는데 이름을 영문자순으로 표시하시오.

SELECT
    ename,
    deptno
FROM
    emp
WHERE
    deptno IN ( 10, 20 )
ORDER BY
    ename ASC;

--커미션을 받는 모든 사원의 이름,급여 및 커미션을 커미션을 기준으로 내림차순으로 정렬하여 표시하십시오.

SELECT
    ename,
    sal,
    comm
FROM
    emp
WHERE
    comm IS NOT NULL
ORDER BY
    comm DESC;

--emp테이블의 업무(job)을 첫글자는 대문자 나머지는 소문자로 출력하시오. INITCAP() 
--업무(job)의 중복은 제거해주십시오.

SELECT DISTINCT
    initcap(job)
FROM
    emp
ORDER BY
    initcap(job) ASC;

--emp테이블에서 사원이름 중 A가 포함된 사원이름을 구하고 그 이름 중 앞에서 3자만 추출하여 출력

SELECT
    substr(
        ename, 1, 3
    )
FROM
    emp
WHERE
    ename LIKE '%A%'
ORDER BY
    ename ASC;

--이름의 세번째 문자가 A인 모든 사원의 이름을 표시하시오.

SELECT
    ename
FROM
    emp
WHERE
    ename LIKE '__A%'
ORDER BY
    ename ASC;

--이름이 J,A 또는 M으로 시작하는 모든 사원의 이름(첫 글자는 대문자로, 나머지 글자는 소문자로 표시) 및 이름의 길이를 표시하시오.(열 레이블은 name과 length로 표시)

SELECT
    ename,
    length(ename)
FROM
    emp
WHERE
    ename LIKE 'J%'
    OR ename LIKE 'A%'
    OR ename LIKE 'M%'
ORDER BY
    ename ASC;

--이름의 글자수가 6자 이상인 사원의 이름을 소문자로 이름만 출력하시오

SELECT
    lower(ename)
FROM
    emp
WHERE
    length(ename) >= 6
ORDER BY
    lower(ename) ASC;

--이름의 글자수가 6자 이상인 사람의 이름을 앞에서 3자만 구하여 소문자로 출력하시오.

SELECT
    ename,
    substr(
        lower(ename), 1, 3
    )
FROM
    emp
WHERE
    length(ename) >= 6
ORDER BY
    ename ASC;

--모든 사원의 이름과 급여를 표시하시오. 급여는 15자 길이로 왼쪽에 $기호가 채워진 형식으로 표기하고 열레이블을 SALARY로 지정하시오.

SELECT
    ename,
    sal,
    lpad(
        sal, 15, '$'
    ) salary
FROM
    emp
ORDER BY
    sal DESC;

--오늘부터 이번달의 마지막날까지의 남은 날 수를 구하시오.

SELECT
    last_day(sysdate) - sysdate
FROM
    dual;

반응형