Sql 在特定范围内对数值数据进行分组

Sql 在特定范围内对数值数据进行分组,sql,crystal-reports,Sql,Crystal Reports,我想对SQL数据库中某个表中的数据进行分组。用于分组的字段是数字字段,我想要的分组不遵循任何数学公式,例如 组0值未知(空) 第1组的值为0-499 第2组值500-999 第三组价值1000-1999 第四组价值2000-4999 第5组价值5000+ 如何使用TSQL实现这一点 顺便说一句,我想在Crystal报表中显示,因此如果有更好的方法在Crystal报表中显示,而不是通过SQL Select语句,请提供建议。您可以使用案例创建自定义组。如果在子查询中定义大小写,则不必重复该定义: s

我想对SQL数据库中某个表中的数据进行分组。用于分组的字段是数字字段,我想要的分组不遵循任何数学公式,例如

组0值未知(空)

第1组的值为0-499

第2组值500-999

第三组价值1000-1999

第四组价值2000-4999

第5组价值5000+

如何使用TSQL实现这一点


顺便说一句,我想在Crystal报表中显示,因此如果有更好的方法在Crystal报表中显示,而不是通过SQL Select语句,请提供建议。

您可以使用
案例创建自定义组。如果在子查询中定义
大小写
,则不必重复该定义:

select  Grp
,       sum(col2)
,       avg(col3)
from    (
        select  case
                when col1 is null then 0
                when col1 between 0 and 499 then 1
                when col1 between 500 and 999 then 2
                ...
                end as Grp
        ,       *
        ) as SubQueryAlias
group by
        Grp