SQL Server 2005/2008 Group By statement with parameters without using dynamic SQL?

前端 未结 2 1502
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-15 12:20

Is there a way to write SQL Server Stored Procedure which to be strongly typed ( i.e. returning known result set of columns ) and having its group statement to be dynamic. <

2条回答
  •  一生所求
    2021-01-15 12:44

    You can group on a constant which might be useful

    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
    

    Edit: For datatype mismatch and multiple values and this allows you to group on both columns...

    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
    

提交回复
热议问题