Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server 2005/2008 Group By-Anweisung mit Parametern ohne Verwendung von dynamischem SQL?

Sie können nach einer Konstante gruppieren, die nützlich sein könnte

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

Bearbeiten:Für Datentyp-Nichtübereinstimmung und mehrere Werte und dies ermöglicht Ihnen, beide Spalten zu gruppieren ...

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