Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Instruction Group By SQL Server 2005/2008 avec paramètres sans utiliser SQL dynamique ?

Vous pouvez grouper sur une constante qui pourrait être utile

SELECT
    SUM(Column0),
    CASE @MyVar WHEN 'Column1' THEN Column1 ELSE '' END AS MyGrouping
FROM
    Table1
GROUP BY
    CASE @MyVar WHEN 'Column1' THEN Column1 ELSE '' END

Modifier :pour les incompatibilités de type de données et les valeurs multiples, cela vous permet de regrouper sur les deux colonnes...

SELECT
    SUM(Column0),
    CASE @MyVar WHEN 'Column1' THEN Column1 ELSE NULL END AS Column1,
    CASE @MyVar WHEN 'Column2' THEN Column2 ELSE NULL END AS Column2
FROM
    Table1
GROUP BY
    CASE @MyVar WHEN 'Column1' THEN Column1 ELSE NULL END,
    CASE @MyVar WHEN 'Column2' THEN Column2 ELSE NULL END