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
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
分类:
SQL Server
, t_sql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库