카테고리 없음
Query] 조건절 변화
James Wetzel
2014. 12. 24. 10:58
declare @CmCode varchar(20)
set @CmCode = '05'
select top 20
row_number() over(order by a.RegDate asc) as No
, a.Uid
, b.CodeName
, a.Subject
, a.Content
, a.IsTop9
, a.ReadCnt
, a.RegDate
from t_faq as a with(nolock)
left join t_common_code as b with(nolock)
on a.Consult = b.CmCode
where (
(@CmCode = '' and 1=1)
or (@CmCode = '05' and b.CmCode = @CmCode)
)
and b.CmClass = 'CONSULT'
order by a.RegDate desc
이 쿼리문의 단점은 OR 연산의 경우 인덱스 설정과 관계 없이 전체 스캔을 한다고 한다.
그래서 UNION ALL 을 사용한다고 한다.
728x90
반응형