当前位置:   article > 正文

sqlserver中grouping()函数的用法_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
            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

返回的结果如下


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/345193
推荐阅读
相关标签
  

闽ICP备14008679号