나의 개발일지

[SQL] 함수의 중첩 본문

Oracle SQL

[SQL] 함수의 중첩

YoonJuHan 2023. 4. 14. 13:50

함수의 중첩

  1. 단일 행 함수는 여러 번 중첩가능
  2. 가장 안쪽부터 바깥쪽 순으로 계산
  3. 예) CONCAT(birthdate, CONCAT('[', CONCAT(gender,']')))

 

  • 이름이 '영'으로 끝나는 사원들을 대상으로 문자함수를 중첩하여 이름의 두 번째 문자로부터 세 문자를 '*'로 표시하고 생년월일과 특수문자 '[]' 및 GENDER 열을 결합하여 생년월일 옆에 성별을 표시
SELECT emp_id, REPLACE(emp_name, SUBSTR(emp_name, 2, 4), '***') name,
        CONCAT(birthdate, CONCAT('[', CONCAT(gender,']'))) AS birth
FROM y_emp
WHERE emp_name LIKE '%영';

 

  • 입사 후 6개월 경과 후 첫 번째 돌아오는 금요일이 사원의 인턴기간이 만료되고 채용 여부가 결정되는 시기로 정해져 있다. 2011년에 입사한 사원의 인턴기간 만료일이 언 제인지 날짜 함수를 중첩해서 알아본다. 또한 출력되는 날짜의 형식은 YYYY-MM-DD 형식이어야 한다.
SELECT emp_id, emp_name, TO_CHAR(hiredate, 'YYYY-MM-DD') 입사일,
        TO_CHAR(NEXT_DAY(ADD_MONTHS(hiredate, 6), '금요일'), 'YYYY-MM-DD')
        AS "Review_Day"
FROM y_emp
WHERE TO_CHAR(hiredate, 'YYYY') LIKE '2011%';

 

Comments