쿼리문 질문 입니다. 0 3 1,314

by 손님 [SQL Query] 쿼리 [2012.05.15 16:08:49]


TBL1
CLM       ORDER_NO   REG_DT
1000                            20120501
1000                            20120502
1000                         20120503
2000                         20120501
2000                         20120504
3000                         20120502
3000                         20120503
3000                         20120504
위와 같이 데이타가 있습니다.
CML1 이 1000 인것만, ORDER_NO 에 순번대로 업데이트 하려 합니다. (정렬은 REG_DT 순으로요)
즉, 제가 원하는 결과물은, 아래와 같습니다.
SELECT UPDATE 문을 해봤는데, 잘 안되네요 ㅠ
아.. 오라클 9i 사용중 입니다.
TBL1
CLM      ORDER_NO   REG_DT
1000      1                   20120501
1000      2                   20120502
1000   3                   20120503
2000                        20120501
2000                        20120504
3000                        20120502
3000                        20120503
3000                        20120504
by 마농 [2012.05.15 16:36:30]

인덱스는 어떤게 있나요?


by 손님 [2012.05.15 17:38:37]
마농님 특별히 인덱스는 없습니다.

by 마농 [2012.05.15 18:07:52]
UPDATE /*+ bypass_ujvc */
(
SELECT *
  FROM tbl1 a
     , (SELECT ROWID rid
             , ROW_NUMBER() OVER(PARTITION BY clm ORDER BY reg_dt) rn
          FROM tbl1
         WHERE clm = '1000'
        ) b
 WHERE a.ROWID = b.rid
)
SET order_no = rn
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입