DB- 부조리(서브쿼리)
- 서브쿼리를 사용하는 경우
- 구절의 순서를 바꿔야 하는 경우
SELECT * FROM MEMBER WHERE ROWNUM BETWEEN 1 AND 10
-> 최신 등록순으로 정렬한 결과에서 상위 열명을 원하는 경우라면 ?
SELECT * FROM MEMBER ORDER BY REGDATE DESC WHERE ROWNUM BETWEEN 1 AND 10
-> 에러가 발생한다.
- 구절의 순서를 바꿔야 하는 경우
SELECT *
FROM (SELECT * FROM MEMBER ORDER BY REGDATE DESC)
WHERE ROWNUM BETWEEN 1 AND 5;
-> 소괄호가 서브쿼리를 나타내는 중요 포인트이다. 소괄호는 먼저계산하겠다는 뜻이다.
EX) 나이가 평균나이 이상인 회원 목록을 조회하시오.
SELECT * FROM MEMBER
WHERE AGE >= (SELECT AVG(AGE) FROM MEMBER)
서브쿼리는 순서를 바꾸거나 먼저 계산해서 결과를 가지고 다음꺼를 사용할때 서브쿼리를 사용한다.
댓글남기기