当前位置: 首页 > 图文教程 > 数据库 > MSSQL > mssql CASE,GROUP BY用法

MSSQL
MS SQL SERVER2005 XML 最佳实践
SQL Server对文件进行全文检索的查询
教你构建SQL Server可管理安全机制
维护SQL Server的交易日志经验总结
SQL SERVER 2005 EXPRESS不能远程连接的问题
SQL Server与Oracle并行访问本质区别
SQL Server数据库优化其索引的小技巧
分析及解决SQLServer死锁问题
用SQL Server为Web浏览器提供图像
SQL Server SQL Agent服务使用小结
SQL Server 存储过程的分页方案比拼
SQL Server数据库中存储引擎深入探讨
四招解决SQL Server对上亿表的排序和join的问题
SQL Server数据库管理员必须掌握的DBCC命令
如何将sql数据库的文件备份到本地?
如何解决Sybase数据库乱码问题详解
SQL Server:SQLServer中最小函数依赖集
小编谈Transact-SQL中的一些命名规范
谈SQL编写规范
浅谈SQL命名与注释规范

MSSQL 中的 mssql CASE,GROUP BY用法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 60 ::
收藏到网摘: n/a

创建数据库并利用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