|
안녕하세요 초보입니다. ㅠ
예를 들어 컬럼이
num
1
1
1
2
2
1
2
이렇게 있습니다.
펑션을 만들껀대 이럴때 1에서 2로 바뀌는 순간과 2에서 1로 바뀌는 순간을 조회하고 싶습니다. 여기서는 리턴 값이 3회가 되겠군요.
대충이런식으로 만들었구요
--리턴 로우 개수
v_cnt INTEGER;
--num 값
v_num INTEGER;
CURSOR c1 IS
SELECT NUM
FROM T
SELECT COUNT(*) --몇개의 로우를 리턴하는지 알아봄 ..
INTO v_cnt
FROM t
BEGIN
OPEN c1;
FETCH c1 INTO v_num;
FOR cnt IN 1..v_cnt-1 LOOP
---여기에서 비교를 해야 합니다 현재행과 뒤에 행의 값을 비교를 해야 되는대 어떻게 해야될지 모르겠군요.
--커서는 맨 상단의 값만 보여주는군요 뭐 v_num(cnt) = v_num(cnt+1)이런식으로 비교할수 있는 그런 방법이 없을까요?
--아님 더 좋은 방법 있으시면 좀 가르켜주세요~!
--그리고 포문을 돌리기위해 로우를 리턴하는 쿼리를 위에 만들었었는대 커서로도 몇개의 로우를 리턴하는지 확인 ---방법이 있습니까?
END LOOP;
END;
|