-
Oracle - 값 중간에 빈부분 채워넣는 쿼리DB/Oracle 2020. 5. 18. 09:39반응형
SELECT CASE WHEN c <> 1 AND c <> 0 THEN 1 -- min값이 1이 아니면 1로 처리
WHEN nullVal = 99 THEN 1 -- 해당 값이 null이면 1로 처리
ELSE Test END AS seqVal
FROM (SELECT NVL (a + 1, 1) AS Test,c,
nullVal -- 값이 null일때 99로 반환되는 값
FROM (SELECT a,
NVL (a + 1, 1) AS Test,
c,
nullVal
FROM (SELECT a,
NVL (LEAD (A) OVER (ORDER BY A), 0) AS b,
0 AS c,
0 AS nullVal
FROM (SELECT seq AS a
FROM 테이블
WHERE 첫번째 키 = 값
AND 두번째 키 = 값
AND 세번재 키 = 값
AND 네번재 키 = 값
AND 다섯번째 키 = 값)
UNION
SELECT NVL (MAX (TO_NUMBER (seq)), 1) AS a,
1 AS b,
NVL (MIN (TO_NUMBER (seq)), 1) AS c,
NVL (SUM (seq), 99) AS nullVal -- numberType이 1Byte라 sum해도 99로 오지못함
FROM 테이블
WHERE 첫번째 키 = 값
AND 두번째 키 = 값
AND 세번재 키 = 값
AND 네번재 키 = 값
AND 다섯번째 키 = 값)
WHERE B <> 0 AND A <> B - 1 AND ROWNUM = 1))반응형'DB > Oracle' 카테고리의 다른 글
Oracle VArray Procedure Sample (0) 2021.05.12 Oracle - INSTR 문자열의 앞,뒤부터 특정 문자 자리수 찾기 (0) 2020.12.24 ORA-01476 - 제수가 0 입니다 (0) 2020.02.26 ORA-01481: 숫자 형식 모델이 부적합합니다 (0) 2019.11.04 Oracle - Obecjt (0) 2019.01.09 댓글