Oracle SQL을 사용하여 두 값 사이의 숫자를 채우는 방법

질문:

나는 시계가 하나 있는데 두 열이 있는데 예를 들어Minvalue와 Maxvalue이다. 값은 다음과 같다.
Minvalue  |   Maxvalue
   5      |     12
마인value와 maxvalue 범위 사이의 숫자 서열을 표시하기 위해 SQL 조회를 작성하려면 다음과 같습니다.
Output

Values
--------
5
6
7
8
9
10
11
12
사전 감사

답안

CONNECT BY LEVEL조항은 이 목적에 사용할 수 있다.LEVEL=1에서 시작하는 목록이 생성됩니다.LEVEL BETWEEN x and y 효과가 없지만 해결 방법은 다음과 같습니다.
  • 주기는 클리어런스(5와 12 사이)를 통과하며 각 항목에 시작 값을 추가합니다.0이 아닌 1부터 레벨을 조정해야 합니다.
  • SELECT level + 4 FROM dual 
    CONNECT BY LEVEL <= 8
    
    
  • CTE 사용
  • WITH min_max(min_val, max_val) AS
    (SELECT 5 , 12 FROM DUAL)
    SELECT LEVEL + min_val - 1 
      FROM min_max CONNECT BY LEVEL <= (max_val - min_val) + 1