我们可以在sql server中有动态group by子句吗?

Rel*_*ity 4 group-by sql-server-2008

我有一个存储过程...它有一个参数:@subCustName.这个存储过程有一个select语句group by custName, subCustName

例如:

SELECT custName, subCustName,sum(membership)
FROM CUSTOMER_TABLE
GROUP BY
custName, subCustName
Run Code Online (Sandbox Code Playgroud)

如果参数@subCustName'ALL',我不想按subCustName分组.

我怎么做到这一点?

提前致谢!

gbn*_*gbn 5

CASE声明小组?

SELECT
    CASE WHEN @custName = 'all' THEN '' ELSE custName END AS custName,
    subCustName, sum(membership)
FROM  
    CUSTOMER_TABLE
GROUP BY
    CASE WHEN @custName = 'all' THEN '' ELSE custName END, subCustName
Run Code Online (Sandbox Code Playgroud)

我在这里回答的另一个例子:SQL Server 2005/2008 Group By语句带参数而不使用动态SQL?