안녕하세요. 시작값과 끝값을 가지고 연속으로 값을 출력하려고 합니다.
WITH문을 써서 예상한 결과가 나오긴 했는데 맞는 방법일지요? DBMS는 인포믹스 입니다.
<원본>
1027 | 1 | 4 |
2562 | a | c |
2564 | 1 | 3 |
6663 | a | c |
7426 | a | d |
<원하는 결과>
1027 | 1 |
1027 | 2 |
1027 | 3 |
1027 | 4 |
2562 | a |
2562 | b |
2562 | c |
2564 | 1 |
2564 | 2 |
2564 | 3 |
… |
WITH temp1 (code, st, en) AS ( SELECT 1027, '1', '4' UNION ALL SELECT 2562, 'a', 'c' UNION ALL SELECT 2564, '1', '3' UNION ALL SELECT 6663, 'a', 'c' UNION ALL SELECT 7426, 'a', 'd' ), temp2 (code, ltr, s) AS ( SELECT * FROM temp1 UNION ALL SELECT code, CHR(ASCII(ltr) + 1), s FROM temp2 WHERE ltr < s ) SELECT code, ltr FROM temp2;