본문 바로가기
문제풀이/DB

[SQL] hr schema 표준함수 문제

by AngieLee 2021. 6. 1.

 hr 표준함수

-- 문제1) EMPLOYEES 테이블에서 King의 정보를 소문자로 검색하고 사원번호, 성명, 담당업무(소문자로),부서번호를 출력하라.

SELECT employee_id, LOWER(last_name), LOWER(job_id), department_id
FROM employees
WHERE LOWER(last_name) = 'king';


-- 문제2) EMPLOYEES 테이블에서 King의 정보를 대문자로 검색하고 사원번호, 성명, 담당업무(대문자로),부서번호를 출력하라.

SELECT employee_id, UPPER(last_name), UPPER(job_id), department_id
FROM employees
WHERE UPPER(last_name) = 'KING';


-- 문제3) DEPARTMENTS 테이블에서 (부서번호와 부서이름), 부서이름과 위치번호를 합하여 출력하도록 하라.

SELECT department_id || ' ' || department_name, department_name || ' ' || location_id
FROM departments;

SELECT CONCAT(department_id, department_name),
    CONCAT(CONCAT(department_name, ' '), location_id)
FROM departments;


-- 문제4) EMPLOYEES 테이블에서 이름의 첫 글자가 ‘K’ 보다 크고 ‘Y’보다 적은 사원의 정보를 
-- 사원번호, 이름, 업무, 급여, 부서번호를 출력하라. 
-- 단 이름순으로 정렬하여라.

SELECT employee_id, first_name, job_id, salary, department_id
FROM employees
WHERE SUBSTR(first_name, 1, 1) > 'K' AND SUBSTR(first_name, 1, 1) < 'Y'
ORDER BY first_name ASC;


-- 문제5) EMPLOYEES 테이블에서 20번 부서 중 이름의 길이 및 급여의 자릿수를 
-- 사원번호, 이름, 이름의 자릿수(LENGTH), 급여, 급여의 자릿수를 출력하라.

SELECT employee_id, first_name, LENGTH(first_name), salary, LENGTH(salary)
FROM employees
WHERE department_id = 20;


-- 문제6) EMPLOYEES 테이블에서 이름 중 ‘e’자의 위치를 출력하라.
SELECT first_name, INSTR(first_name, 'e', 1, 1)
FROM employees;


-- 문제7) 다음의 쿼리를 실행하고 결과를 출력하고 확인하라.

SELECT  ROUND(4567.678),        -- 4567      
        ROUND(4567.678, 0),     -- 4567  
        ROUND(4567.678, 2),     -- 4567.68    
        ROUND(4567.678, -2)     -- 4600   
FROM dual;


-- 문제8) EMPLOYEES 테이블에서 부서번호가 80인 사람의 급여를 30으로 나눈 나머지를 구하여 출력하라.

SELECT first_name, department_id, salary, MOD(salary, 30)
FROM employees
WHERE department_id = 80;


-- 문제9) EMPLOYEES 테이블에서 30번 부서 중 이름과 담당 업무를 연결하여 출력하여라. 

SELECT first_name || ' ' || job_id
FROM employees
WHERE department_id = 30;


-- 문제10) EMPLOYEES 테이블에서 현재까지 근무일 수가 몇주 몇일 인가를 출력하여라. 
-- 단 근무 일수가 많은 사람 순으로 출력하여라.

SELECT first_name, hire_date,
    SYSDATE - hire_date as "총 근무 일수",
    TRUNC((SYSDATE - hire_date) / 7) AS "총 근무주 일수",
    MOD((SYSDATE - hire_date), 7) AS "남은 일수"
FROM employees;


-- 문제11) EMPLOYEES 테이블에서 부서 50에서 급여 앞에 $를 삽입하고 3자리마다 ,를 출력하라

SELECT first_name, department_id, salary, TO_CHAR(salary, '$999,999,999')
FROM employees
WHERE department_id = 50;

'문제풀이 > DB' 카테고리의 다른 글

[SQL] Table 생성 연습문제(2)  (0) 2021.06.01
[SQL] Table 생성 연습문제(1)  (0) 2021.06.01
[SQL] scott schema  (0) 2021.05.26
[SQL] hr schema  (0) 2021.05.26