사용 IF/ELSE
:
예를 들어, 단일 쿼리로 상황을 결합하는 시도
IF @compNatureId IS NULL
BEGIN
SELECT nfv.Company_id, COUNT(1) as NegativeFeedback,SUM(allocated_score) as ScoreSum
FROM dbo.NegativeFeedbackView nfv
WHERE ISNULL(nfv.comp_nature_id,0) = @compNatureId
GROUP BY nfv.Company_id
END
ELSE
BEGIN
SELECT nfv.Company_id, COUNT(1) as NegativeFeedback,SUM(allocated_score) as ScoreSum
FROM dbo.NegativeFeedbackView nfv
GROUP BY nfv.Company_id
END
:
SELECT nfv.Company_id, COUNT(1) as NegativeFeedback,SUM(allocated_score) as ScoreSum
FROM dbo.NegativeFeedbackView nfv
WHERE ISNULL(nfv.comp_nature_id,0) = @compNatureId
OR @compNatureId IS NULL
GROUP BY nfv.Company_id
는 차선의 계획을 얻을 가능성, 그리고 (있는 경우)는 comp_nature_id
에 어떤 인덱스를 사용할 수 없습니다.