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;

'oracle' 카테고리의 다른 글
트랜잭션 커밋과 롤백 언제 어떻게 사용할까 (0) | 2023.01.13 |
---|---|
Oracle Case 조건문 사용하기 (0) | 2023.01.12 |
Oracle CONNECT BY 절과 LEVEL 을 이용한 날짜 목록 생성 (0) | 2023.01.11 |
ORACLE CASE 요일 조건문 (0) | 2023.01.09 |
ORACLE select 월의 첫날, 마지막 날 조회하기 (0) | 2022.12.30 |