안녕하세요.
항상 DB 사랑넷에서 도움을 받고 있는 초심자 입니다.
WITH TEMP
(
SELECT 0 AS SEQ, 'Y' AS USE_YN, 'A' AS ID_NM FROM DUAL UNION ALL
SELECT 1 AS SEQ, 'Y' AS USE_YN, 'B' AS ID_NM FROM DUAL UNION ALL
SELECT 2 AS SEQ, 'Y' AS USE_YN, 'C' AS ID_NM FROM DUAL UNION ALL
SELECT 3 AS SEQ, 'Y' AS USE_YN, 'D' AS ID_NM FROM DUAL
)
SELECT SEQ FROM TEMP
WHERE USE_YN = 'Y'
SEQ 값을 가져오는 건데 제가 궁금한 것은 2번 SEQ가 'N' 으로 되었을 경우 3이 2번으로 가져오고 싶은 것입니다.
RANK를 사용하여 각각 하나의 ROW가 나왔을때는 순번이 정상적으로 나왔으나
뒤에 조건이 AND ID_NM = 'D' 로 하였을 경우는 순번이 2가 아닌 0 으로 나오게 되는데 저는 'Y' 값만을 가지고 순번을 정하고 싶습니다.
WITH TEMP
(
SELECT 0 AS SEQ, 'Y' AS USE_YN, 'A' AS ID_NM FROM DUAL UNION ALL
SELECT 1 AS SEQ, 'N' AS USE_YN, 'B' AS ID_NM FROM DUAL UNION ALL
SELECT 2 AS SEQ, 'Y' AS USE_YN, 'C' AS ID_NM FROM DUAL UNION ALL
SELECT 3 AS SEQ, 'Y' AS USE_YN, 'D' AS ID_NM FROM DUAL
)
SELECT SEQ FROM TEMP
WHERE USE_YN = 'Y'
AND 'D' = ID_NM 일 경우
SEQ가 3이 아니라 2로 나오고 싶습니다.
혹시 해당 쿼리에 대해 아시는 분 계신지 궁금합니다.
미리미리 감사합니다.
|