mssql CASE,GROUP BY用法

代码如下:

--create database dbTemp
use dbTemp
create table test
(
Pid int identity(1,1) not null primary key,
Years datetime,
IsFirstSixMonths int default(0), --0表示上半年1表示下半年--
TotalCome int
)
insert test
select '2007-1-1',0,50
union
select '2007-3-1',0,60
union
select '2007-12-1',1,80
union
select '2008-1-1',0,100
union
select '2008-12-1',1,100

select * from test

select convert(char(4),Years,120) as 'year',
IsFirstSixMonths=case when IsFirstSixMonths=0 then '上半年' when IsFirstSixMonths=1 then '下半年' END ,
sum(totalcome) as 'sum' from test
group by IsFirstSixMonths,convert(char(4),Years,120)

select convert(char(4),Years,120) as 'year',
IsFirstSixMonths=case when IsFirstSixMonths=0 then '上半年' ELSE '下半年' END ,
sum(totalcome) as 'sum' from test
group by IsFirstSixMonths,convert(char(4),Years,120)

--DROP DATABASE dbtemp

结果如下:


代码如下:

2007 上半年 110
2007 下半年 80
2008 上半年 100
2008 下半年 100

(0)

相关推荐

  • mysql筛选GROUP BY多个字段组合时的用法分享

    想实现这样一种效果如果使用group by一个条件的话,得到的结果会少了很多,如何多个条件组合筛选呢 复制代码 代码如下: group by fielda,fieldb,fieldc... 循环的时候可以通过判断后一个跟前面一个是否相同来分组,一个示例 复制代码 代码如下: $result = mysql_query("SELECT groups,name,goods FROM table GROUP BY groups,name ORDER BY name"); $arr = arr

  • MySQL中distinct与group by语句的一些比较及用法讲解

    在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用DISTINCT和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group by会做个排序(一般是ASC).           DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已.所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别,同样可以通过松散索引扫描或者是

  • 详解SQL中Group By的用法

    GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. 1.概述 "Group By"从字面意义上理解就是根据"By"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个"小区域",然后针对若干个"小区域"进行数据处理. 2.原始表 3.简单Group By 示例1 select 类别, sum(数量) as 数量之和 from A group by 类别 返回结果如下表

  • 浅析SQL语句中GROUP BY的用法

    GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想 你用了GROUP  BY 按  ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示 A  B 1  abc 1  bcd 1  asdfg select A,B from table group by A 你说这样查出来是什么结果, A  B     abc 1  bcd     asdfg 右边3条如何变成一条,所以需要用到聚合函数,比如 select A

  • 总结下sqlserver group by 的用法

    今天用实例总结一下group by的用法. 归纳一下:group by:ALL ,Cube,RollUP,Compute,Compute by 创建数据脚本 Create Table SalesInfo (Ctiy nvarchar(50), OrderDate datetime, OrderID int ) insert into SalesInfo select N'北京','2014-06-09',1001 union all select N'北京','2014-08-09',1002

  • mssql CASE,GROUP BY用法

    复制代码 代码如下: --create database dbTemp use dbTemp create table test ( Pid int identity(1,1) not null primary key, Years datetime, IsFirstSixMonths int default(0), --0表示上半年1表示下半年-- TotalCome int ) insert test select '2007-1-1',0,50 union select '2007-3-1

  • 详解SQL之CASE WHEN具体用法

    简单CASE WHEN函数: CASE SCORE WHEN 'A' THEN '优' ELSE '不及格' END CASE SCORE WHEN 'B' THEN '良' ELSE '不及格' END CASE SCORE WHEN 'C' THEN '中' ELSE '不及格' END 等同于,使用CASE WHEN条件表达式函数实现: CASE WHEN SCORE = 'A' THEN '优' WHEN SCORE = 'B' THEN '良' WHEN SCORE = 'C' THE

  • Oracle中分组查询group by用法规则详解

    Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总信息. 使用having子句 限制返回的结果集.group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果. 在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包

  • sql中case语句的用法浅谈

    SQL中Case的使用方法 Case具有两种格式.简单Case函数和Case搜索函数. 复制代码 代码如下: --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比

  • 举例讲解Swift编程中switch...case语句的用法

    Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,但苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性.使用Switch语句很简单: var i = 0 switch i { case 0: "0" //被输出 case 1: "1" default: "2" } 在这个最简单的Switch语句中,与其他语言很不同的一点是:不用显式的加上break.Swift的S

  • VBS中Select CASE的其它用法

    marr=20select case true case marr<12  response.write "小于12" case marr>12  response.write "大于12" case marr=12  response.write "=="end select   还可以这样用 case marr> 7 and marr<12

  • MYSQL GROUP BY用法详解

    背景介绍 最近在设计数据库的时候因为开始考虑不周,所以产生了大量的重复数据.现在需要把这些重复的数据删除掉,使用到的语句就是Group By来完成.为了进一步了解这条语句的作用,我打算先从简单入手. 建一个测试表 复制代码 代码如下: create table test_group(id int auto_increment primary key, name varchar(32), class varchar(32), score int); 查看表结构 desc test_group 插入

  • js switch case default 的用法示例介绍

    复制代码 代码如下: switch(tagName){ case "span": node = element.parent().parent(); element = element; break; case "td": node = element.parent(); element = element.find("span"); break; default: node = element; break; } 以上语句等同于 if(tagN

  • group by用法详解

    一.  概述 group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组. 二.  语法 select   字段    from   表名   where    条件     group   by       字段 或者 select   字段    from   表名   group  by    字段    having    过滤条件 注意:对于过滤条件,可以先用where,再用group  by或者是先用group  by,再用having 三.  案例 1  

  • group by用法详解

    一.  概述 group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组. 二.  语法 select   字段    from   表名   where    条件     group   by       字段 或者 select   字段    from   表名   group  by    字段    having    过滤条件 注意:对于过滤条件,可以先用where,再用group  by或者是先用group  by,再用having 三.  案例 1  

随机推荐