-- 3. EMPLOYEE테이블에서 사원명, 입사일-오늘, 오늘-입사일 조회
-- (단, 각 별칭은 근무일수1, 근무일수2가 되도록 하고 모두 정수(내림), 양수가 되도록 처리)
SELECT EMP_NAME 사원명, FLOOR(ABS(HIRE_DATE - SYSDATE )) + 1 "근무일수1" , TRUNC(ABS(sysdate - HIRE_DATE ))+ 1 "근무일수2"
FROM eMPLOYEE;
-- 4. EMPLOYEE테이블에서 사번이 홀수인 직원들의 정보 모두 조회
SELECT *
FROM employee
WHERE MOD(EMP_ID, 2) != 0;
SELECT *
FROM employee
WHERE EXTRACT(YEAR FROM sysdate) - EXTRACT(YEAR FROM HIRE_DATE) >= 20;
-- WHERE MONTHS_BETWEEN(SYSDATE, HERE_DATE) >= 240;
-- ADD_MONTHS(HIRE_DATE, 240) < SYSDATE;
-- 7. EMPLOYEE테이블에서 직원 명, 부서코드, 생년월일, 나이(만) 조회
-- (단, 생년월일은 주민번호에서 추출해서 00년 00월 00일로 출력되게 하며
-- 나이는 주민번호에서 출력해서 날짜데이터로 변환한 다음 계산)
SELECT EMP_NAME, DEPT_CODE, SUBSTR(EMP_NO, 1, 2) || '년' || SUBSTR(EMP_NO, 3,2) || '월' || SUBSTR(EMP_NO, 5,2) || '일' 생년월일
-- TO_CHAR(TO_DATE(SUBSTR(EMP_NO, 1,6)), 'YY'년'')
--, -- EXTRACT(YEAR FOR )
FROM employee;
-- 8. EMPLOYEE테이블에서 부서코드가 D5, D6, D9인 사원만 조회하되 D5면 총무부, D6면 기획부, D9면 영업부로 처리
-- (단, 부서코드 오름차순으로 정렬)
-- * DECODE : (비교대상(컬럼/연산식/ 함수식), 비교값1, 결과값1, 비교값2, 결과값2
SELECT EMP_NAME, DECODE(DEPT_CODE, 'D5', '총무부', 'D6', '기획부', 'D9', '영업부' , '미배정')
FROM employee
WHERE dept_code IN('D5','D6','D9')
ORDER BY DEPT_CODE;
다른 풀이
SELECT EMP_ID, EMP_NAME, DEPT_CODE,
CASE
WHEN DEPT_CODE = 'D5' THEN '총무부'
WHEN DEPT_CODE = 'D6' THEN '기획부'
WHEN DEPT_CODE = 'D9' THEN '영업부'
END
FROM employee
WHERE dept_code IN('D5','D6','D9')
ORDER BY 3;
'ORACLE SQL' 카테고리의 다른 글
SQL 함수_2 숫자 타입의 데이터 처리 함수 및 날짜 (0) | 2024.07.21 |
---|---|
SQL 함수 모음_1 문자 관련 함수. (0) | 2024.07.20 |
SQL 정리 연산자 모음 (0) | 2024.07.19 |
SQL 4일차 형변환 (0) | 2024.07.19 |
SQL 함수 정리 (FUNCTION) 3일차 (0) | 2024.07.19 |