동일 테이블 크로스 데이터확인 쿼리 0 2 2,248

by 가우디 [2011.07.12 14:37:52]


안녕하세요. 아래 문제가 풀리지 않습니다.
현재 A 테이블에 ID1, ID2 컬럼이 존재하고
111, 222 가 존재 하면 222, 111 데이터가 다른 행에 무조건 존재 합니다.
PK는 (ID1, ID2) 입니다.

변경전
111 222
222 111
333 444
444 333
555 666
666 555

변경후
111 222 1
222 111 1
333 444 2
444 333 2
555 666 3
666 555 3
by 마농 [2011.07.12 15:11:58]
WITH t AS
(
SELECT 111 id1, 222 id2 FROM dual
UNION ALL SELECT 222, 111 FROM dual
UNION ALL SELECT 333, 444 FROM dual
UNION ALL SELECT 444, 333 FROM dual
UNION ALL SELECT 555, 666 FROM dual
UNION ALL SELECT 666, 555 FROM dual
)
SELECT id1, id2
, DENSE_RANK() OVER(ORDER BY LEAST(id1, id2), GREATEST(id1, id2)) dr
FROM t
;

by 가우디 [2011.07.12 16:00:05]
감사합니다. 잘사용 하겠습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입