sqlserver中grouping()函数的用法

sqlserver中grouping()函数的用法

                                           
1.grouping()函数返回值
if(field!=null || field !=' ')
grouping(field)=0
else
grouping(field)=1
2.grouping()函数用法
可以 按字段等级显示 结果 值,具体sql如下
CREATE TABLE grouptable
(level1 nvarchar(128),
level2 NVARCHAR(128),
level3 NVARCHAR(128),
total DECIMAL(18,2))
INSERT INTO grouptable(level1,level2,level3,total)
SELECT '!','@','','100' UNION ALL     //等级类型  可以为!,@,#  或者是  A,B,C
SELECT '!','@','#','100' UNION ALL
SELECT 'A','B','C','5000' UNION ALL
SELECT 'A','B','','6000' SELECT CASE
            WHEN GROUPING(level1)=1
THEN 0
            WHEN GROUPING(level2)=1
THEN 1    WHEN
GROUPING(level3)=1
THEN 2 ELSE
3 END
            AS typelevel,level1,level2,level3,SUM(total)  FROM dbo.grouptable   GROUP BY level1,level2,level3
WITH ROLLUP  //with rollup 函数可以让这些等级分层显示  ORDER BY level1,level2,level3,typelevel
       DROP TABLE dbo.grouptable
返回的结果如下

                                   
————————————————
版权声明:本文为CSDN博主「IU的男朋友」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35056027/java/article/details/78344560
原文地址:https://www.cnblogs.com/shuihaya/p/12899397.html