안녕하세요. 시작값과 끝값을 가지고 연속으로 값을 출력하려고 합니다.
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 |
… |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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; |