[DB] SQLP 실기 - 5
많은 건수테이블 에서 존재하는지 검사
위 쿼리에서 order 테이블이 가장 크기가 크지만, orderdt 의 날짜가 2009년 이후인지만 체크하고 있다.
2009년 이후 모든 데이터를 가져와 중복제거를
->
원하는 데이터만 가져와 2009년 이후인지만 Exists
create index order_01 on order (prod_id, orderdt);
select /*+ leading(m p) use_nl(p) index(p idx_product_12_01)*/
p.m_code, m.m_name
from product_12 p, manuf_12 m
where p.m_code = m.m_code
and exists (
select /*+ nl_sj index(o oder_01) */ 'x'
from order_12 o
where o.orderdt >= '20090101'
and o.prod_10 = p.prod_id
)
group by p.m_code, m.m_name
위처럼 m 테이블 풀스캔,(50건) 을 상품테이블과 조인하고, (1: M 관계라서 나중에 group by 해줘야함)
조인된 상품을 주문테이블과 nl_sj 하여서, 2009년 이후인지만 체크한다.
(세미조인도 인덱스 필수)
조건에 의한 정렬, 페이징, 데이트 컬럼 가공
select a.*
from (select a.*, rownum as ro
from (select *
from order o
where orderdt like :v_ordmon || '%'
order by orderdt, empid, case :v_orderbyCol
when 'ORDERPRIC' then orderpric
when 'ORDERQTY' then orderqty
END desc) a
where rownum <= :v_cpag * v_ppag) a
where ro > (:v_cpag -1) * v_ppag ;
- 월별 입력값을 like로 받고 정렬한다.
- 정렬시 case문으로 변수에 따라 정렬값을 다르게 적용한다.
- 페이징 쿼리를 정확히 기술한다.
Author And Source
이 문제에 관하여([DB] SQLP 실기 - 5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kw78999/DB-SQLP-실기-5저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)