Oracle/Oracle 실무

[ DB | ORACLE ] 가장 최신 날짜의 데이터만 가져오기

냠냠쿠 2023. 10. 24. 13:42
728x90

 

방법 1. ROWNUM 사용하기

- ORACLE에는 MySQL처럼 Limit 가 없다. 대신 ROWNUM이 있는데, 첫번째 줄을 가져온다는 말인듯, 그래서 정렬을 DESC (내림차순) 으로 해줬다. 

SELECT *
FROM (SELECT B.USER_ID, A.EMPLOYEENAME, B.DATE
    FROM TableA A
    RIGHT JOIN TableB B
    ON A.NUMBER = B.NUMBER AND A.NUMBER2 = B.NUMBER2
    WHERE A.CARNUMBER = '12가 1234' AND A.EMPLOYEENAME = '홍길동'
    ORDER BY B.DATE DESC
) WHERE ROWNUM = 1;

 

방법 2. ROW_NUMBER() 사용하기

- ROW_NUMBER로 데이터에 번호를 붙여 가장 최근 데이터를 가져온다.

SELECT *
FROM (SELECT B.USER_ID, A.EMPLOYEENAME, B.DATE, 
	ROW_NUMBER() OVER (ORDER BY B.DATE DESC) AS rn
    FROM TableA A
    RIGHT JOIN TableB B
    ON A.NUMBER = B.NUMBER AND A.NUMBER2 = B.NUMBER2
    WHERE A.CARNUMBER = '12가 1234' AND A.EMPLOYEENAME = '홍길동'
) WHERE rn = 1;

 

728x90