oracle

Oracle dual 빈 행과 level을 이용한 날짜 출력하기

구름Grum 2023. 1. 10. 10:51


DUAL테이블은 Oracle 및 일부 다른 데이터베이스 관리 시스템에 있는 1행 1열 테이블이다.

쿼리에서 중간 결과를 유지 및 조작하고 SELECT 문에서 사용할 상수 값을 선택하는 데 자주 사용된다.


이를 이용해서 원하는 날짜, 문구, 숫자 등을 출력하는데 쓸 수 있을 것이다.

 

SELECT * FROM DUAL;

 

결과

SELECT 'Hello, world!' FROM DUAL;

이 쿼리는 문자열을 포함하는 하나의 열이 있는 단일 행을 반환한다 'Hello, world!'.

DUAL테이블을 사용하여 간단한 산술 계산을 수행 할 수도 있다 . 예를 들어:

 

SELECT 3 + 4 FROM DUAL;

이것은 값을 포함하는 하나의 열이 있는 단일 행을 반환한다 7.

이 DUAL테이블은 Oracle에만 해당되며 다른 데이터베이스 관리 시스템에서는 사용하지 못할 수도 있다.



조금 더 활용하여 level을 이용하면 여러줄을 출력 할 수도 있다. 아래와 같이 하면 level 1~7까지 7줄의 행이 출력된다.

SELECT LEVEL
      FROM DUAL
CONNECT BY LEVEL < 8;

 

결과



TRUNC (SYSDATE) - LEVEL 을 조회해보면 기준일 전날부터 7일에 해당하는 날짜를 출력할 수 있다.
특정 날짜부터 연속된 날짜를 가져올때 유용하다.

SELECT LEVEL, TRUNC (SYSDATE) - LEVEL
      FROM DUAL
CONNECT BY LEVEL < 8;

 

결과