본문 바로가기

[Oracle] 월의 첫째 날, 마지막 날, 일자 리스트, 요일 오래된 쿼리들을 보면 무식하게 반복되는 구조를 가진 것들이 있다. 예를 들면 월 내의 일자 반복인데 아래 예시를 보자.  몇천줄 넘어가는 쿼리들 까보면 다 이런 식이라 한숨부터 나온다. 그나마 일자 반복은 아래 쿼리들을 사용하면 줄일 가능성이라도 있다. 월의 첫째 날을 구하는 쿼리이다.SELECT TRUNC(TO_DATE('', 'YYYYMM')) AS FIRST_DAY FROM DUAL; 월의 마지막 날은 더 간단하다.SELECT LAST_DAY(TO_DATE('', 'YYYYMM')) AS END_DAY FROM DUAL; 일자 리스트는 LEVEL을 사용하여 출력한다. 레벨 범위를 설정하는 방법은 여러 가지가 있는데, 난 아래 방법이 가장 직관적인 것 같다.SELECT TRUNC(TO_DATE('',..
[Oracle] SELECT 쿼리 결과로 새로운 테이블 만들기 회사가 커질수록 DB Schema가 복잡해지고, 쿼리 하나를 짤 때도 무수한 테이블을 참고해야 한다.그런 무수한 테이블의 컬럼을 참조하는 신규 테이블을 제작해야 하는 상황일 때, 그 컬럼들의 타입을 일일히 찾아 넣기는 너무 귀찮다. 아래는 임시 테이블로 생성한 쿼리와 결과이다.SELECT LEVEL AS employee_id, 'Employee ' || LEVEL AS employee_name, SYSDATE - (LEVEL * 10) AS hire_date, 1000 + (LEVEL * 500) AS salaryFROM DUALCONNECT BY LEVEL  이제 쿼리 결과로 테이블을 만들어보자.CREATE TABLE employee_example ASSELECT LEVEL ..