내 MS SQL Server
데이터베이스에서 하나의 열에있는 다양한 다른 코드를 기반으로 트랜잭션 데이터를 가져옵니다.SQL CASE 대 JOIN 효율성
그것이 더 효율적으로 될 것이다 :
절
전체 테이블에 여러 case 문을 WHERE A의 각 코드를 반복해서 같은 테이블에 가입
(아래 그림 참조)은 전체 테이블에 여러 개의 case 문을하지만
WHERE SubsidCde IN ('AA','BA','BB', etc)
절하여 제한
초당 실행되는 쿼리가 너무 많아서 3 가지 방법을 모두 사용해도 결과가 확실하지 않습니다.
SELECT
SUM(CASE WHEN Subsid_Cde = 'AA' THEN Trans_Amt END),0) [AA],
SUM(CASE WHEN Subsid_Cde = 'BA' THEN Trans_Amt END),0) [BA],
SUM(CASE WHEN Subsid_Cde = 'BB' THEN Trans_Amt END),0) [BB]
FROM
Transactions
-- There are 8 more rows like this, using a different code for each line
참조 http://sqlblog.com/blogs/linchi_shea/archive/2011/04/04/performance-impact-the-cost-of-doing-small-lookups-in-a-large-batch.aspx –