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

发布于 2024-11-08 02:41:54 字数 366 浏览 3 评论 0原文

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

例如:

SELECT custName, subCustName,sum(membership)
FROM CUSTOMER_TABLE
GROUP BY
custName, subCustName

如果参数 @subCustName'ALL',我不想分组通过 subCustName。

我怎样才能做到这一点?

提前致谢!

I have one stored procedure...which has one parameter: @subCustName.
This stored proc has one select statement with group by custName, subCustName

Ex:

SELECT custName, subCustName,sum(membership)
FROM CUSTOMER_TABLE
GROUP BY
custName, subCustName

If parameter @subCustName is 'ALL', I dont want to group by subCustName.

How do I acheve that ?

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小瓶盖 2024-11-15 02:41:54

小组讨论 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

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

Group on a CASE statement?

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

Another example in my answer here: SQL Server 2005/2008 Group By statement with parameters without using dynamic SQL?

花伊自在美 2024-11-15 02:41:54

像这样的东西

IF (@subCustName = 'ALL')
    SELECT custName, subCustName, 1
    FROM CUSTOMER_TABLE
ELSE
    SELECT custName, subCustName, sum(membership)
    FROM CUSTOMER_TABLE
    GROUP BY custName, subCustName

或者你可以动态构建查询

Something like this

IF (@subCustName = 'ALL')
    SELECT custName, subCustName, 1
    FROM CUSTOMER_TABLE
ELSE
    SELECT custName, subCustName, sum(membership)
    FROM CUSTOMER_TABLE
    GROUP BY custName, subCustName

or you can build query dynamically

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文