Nel mio database MS SQL Server
sto prelevando i dati delle transazioni in base a una varietà di codici diversi che si trovano in una colonna.SQL CASE rispetto all'efficienza JOIN
sarebbe più efficiente:
unirsi allo stesso tavolo più e più volte per ogni codice in una clausola WHERE
do più istruzioni caso sulla intera tabella (vedi sotto)
do più istruzioni case su tutto il tavolo, ma limitarla da una clausola
WHERE SubsidCde IN ('AA','BA','BB', etc)
Abbiamo così tante query al secondo che anche se ho provato tutti e 3 i metodi non ottengo risultati definitivi.
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
Vedere http://sqlblog.com/blogs/linchi_shea/archive/2011/04/04/performance-impact-the-cost-of-doing-small-lookups-in-a-large-batch.aspx –