Vraag : GROEP DOOR de Verklaringen van het Geval

Niet noodzakelijk een probleem, maar ik heb een vraag betreffende het gebruiken van de verklaringen van het COMPUTER-AIDED SOFTWARE ENGINEERING in het bijeenvoegen van/>My het vragen queries.


SELECT (KOLA), SOM (COLB),
CASE @MyVar
WANNEER 1 TOEN 'XXX'< br/> WANNEER 2 TOEN 'XXX'< br/> WANNEER 3 TOEN 'XXX'< br/> WANNEER 4 TOEN 'XXX'< br/>END ALS COLC
FROM MyTable
GROUP BY
CASE @MyVar
WANNEER 1 TOEN 'XXX'< br/> WANNEER 2 TOEN 'XXX'< br/> WANNEER 3 TOEN 'XXX'< br/> WANNEER 4 TOEN 'XXX'< br/>END

… waar „XXX“ verschillende waarden volgens het geval zijn. Vraag, is zal er om het even welk prestatieseffect in de bovengenoemde vraag omdat I herhalend het volledige deel van het COMPUTER-AIDED SOFTWARE ENGINEERING van de vraag in de groep door clausule zijn? Of het zou beter zijn om het eerste deel van de vraag als CTE en dan een groep langs op COL. 3 te nestelen? Als deze… (KOLA, COLB, COLC) AS
(SOM
SELECT (KOLA), SOM (COLB),
CASE @MyVar
WANNEER 1 TOEN 'XXX'< br/> WANNEER 2 TOEN 'XXX'< br/> WANNEER 3 TOEN 'XXX'< br/> WANNEER 4 TOEN 'XXX'< br/>END
FROM MyTable
)
SELECT KOLA

WITH MyCTE, COLB, zal COLC VAN GROEP MyCTE DOOR COLC



Points voor beste antwoord en een andere wijzers/uiteinden/comments.
worden gegeven

Antwoord : GROEP DOOR de Verklaringen van het Geval

Correct gedaan, zou het geen verschil moeten maken, optimizer slim genoeg is om uitdrukkingen opnieuw te gebruiken.
Maar uw CTE zal die manier niet werken - het vereist langs nog de groep in CTE zelf, en u hebt om het even wat niet bereikt.

De ad hoc mening zou als dit kijken:

selecteer som (Kola), som (ColB), MyVar van
(UITGEZOCHTE Kola, ColB,
 @MyVar COMPUTER-AIDED SOFTWARE ENGINEERING
     WANNEER 1 TOEN „XXX“
     WANNEER 2 TOEN „XXX“
     WANNEER 3 TOEN „XXX“
     WANNEER 4 TOEN „XXX“
 EIND MyVar
 VAN MyTable) v
groep door MyVar

CTE is het zelfde.
Andere oplossingen  
 
programming4us programming4us