grouping()函数
2010-01-29 15:24 Jeff Chow 阅读(1381) 评论(0) 收藏 举报grouping(), Sql Server里边的一个函数,至于在其他数据库是怎样的意思,暂不提。
所要传入的参数是group by字句中的某个表达式,返回结果只有0和1。
msdn上说到该函数只是的是否聚合group by列表中的指定列表达式。如果grouping()返回1则指示聚合;返回0则指示不聚合。
个人对此的理解是:如果该值(单元格里边的内容)是聚合(累加)产生的结果,则grouping()函数返回1。
常见的用法:在group by 【表达式1】 【表达式2】 …… with rollup中,对于用于分类的表达式,如果有多个的话,在【表达式1】聚合的行中,【表达式2】的值为null,这个null值是由对非数字列的聚合产生的,不同于数据表中的null,所以grouping()可以用来区分标准空值和由rollup、cube 或 grouping sets返回的空值。
举个例,如果分类表达式中存在某条数据的值为null的话,那么grouping()这个值的时候,返回的会是0。因为这个值是标准的null,而不是聚合产生的null。所以,grouping()函数值为null则返回1,非null则返回0的说法并不正确。
浙公网安备 33010602011771号