안녕하세요.
DB 공부를 하고있는 초보자 입니다.
MSSQL 혹은 MySQL 에서
테이블
Index | Min X | Min Y | Min X | MAX Y |
A | 1 | 2 | 2 | 4 |
B | 2 | 1 | 5 | 2 |
C | 3 | 1 | 4 | 2 |
결과
Index | X | Y |
A | 1 | 2 |
A | 1 | 3 |
A | 1 | 4 |
A | 2 | 2 |
A | 2 | 3 |
A | 2 | 4 |
B | 2 | 1 |
B | 2 | 2 |
B | 3 | 1 |
B | 3 | 2 |
B | 4 | 1 |
B | 4 | 2 |
B | 5 | 1 |
B | 5 | 2 |
C | 3 | 1 |
C | 3 | 2 |
C | 4 | 1 |
C | 4 | 2 |
테이블에 X최소값,Y최소값, X최대값,Y최대값이 있을때
Y최소값을 Y최대값까지 1씩 증가시키고,
Y가 최대값까지 갔을때 X가 1 증가하면서 Y는 최소값으로 초기화되고,
반복하여 X도 최대값까지 도달하면
다음 인덱스로 넘어가는 방식의
테이블 결과를 얻을 수 있는 방법이 있는가 싶어서 질문 드렸습니다.
현재 오라클에서는
SELECT Index, X, Y
FROM 테이블
, (SELECT LEVEL X FROM dual CONNECT BY LEVEL <= ( select max(Max_X) from 테이블)) X
, (SELECT LEVEL Y FROM dual CONNECT BY LEVEL <= ( select max(Max_Y) from 테이블)) Y
WHERE X BETWEEN min_x AND max_x
AND Y BETWEEN min_y AND max_y
ORDER BY Index, X, Y;
이렇게 사용하고 있습니다.
Comment 1
-
항해자™
2016.12.06 16:20
한번 풀어봤습니다,,,