博客园上的一篇文章,看后受益匪浅啊,来源:[url]http://www.cnblogs.com/zhanglei644213943/archive/2009/12/27/1633356.html
[/url]
图一:
图二:
数据库代码如下:
代码
DROP table #student
CREATE TABLE #student (stdname nvarchar( 10 ),stdsubject nvarchar( 10 ),result int )
INSERT INTO #student VALUES ( ' 张三 ' , ' 语文 ' , 80 )
INSERT INTO #student values ( ' 张三 ' , ' 数学 ' , 90 )
INSERT INTO #student VALUES ( ' 张三 ' , ' 物理 ' , 85 )
INSERT INTO #student VALUES ( ' 李四 ' , ' 语文 ' , 85 )
INSERT INTO #student values ( ' 李四 ' , ' 数学 ' , 92 )
INSERT INTO #student VALUES ( ' 李四 ' , ' 物理 ' , 82 )
INSERT INTO #student VALUES ( ' 李四 ' , ' 化学 ' , 82 )
INSERT INTO #student VALUES ( ' 李四 ' , ' 化学 ' , 82 )
SELECT * FROM #student
select stdname,
isnull(sum( case stdsubject when ' 化学 ' then Result end), 0 ) [化学],
isnull(sum( case stdsubject when ' 数学 ' then Result end), 0 ) [数学],
isnull(sum( case stdsubject when ' 物理 ' then Result end), 0 ) [物理],
isnull(sum( case stdsubject when ' 语文 ' then Result end), 0 ) [语文]
from #student
group by stdname
- 大小: 2.8 KB
- 大小: 1.4 KB
分享到:
相关推荐
1 case when 写法 2 sum case when 用法 3 select 拼接字段 示例如下: when 2 then 'C' else 'D' end ) as '类型',count(*) as '数量' from table group by orderType
mysql 中类似php switch case 的语句。 select xx字段, case 字段 when 条件1 then 值1 when 条件2 then 值2 ...group by isCheck 使用case when : select sum(redpackmoney) as stota, (CASE i
今天群里有人问了个问题是这样的: 然后有群友是这样回答的 代码如下: select name,sum(case when stype=4 then money*(-1) else money end ) as M from table group by name 我想了想,应该可以用IF函数 于是改了下...
我们一般通过表达式$sum来计算总和。因为MongoDB的文档有数组字段,所以可以简单的将计算总和分成两种: 1,统计符合条件的所有文档的某个字段的总和; 2,统计每个文档的数组字段里面的各个数据值的和。... by_user
ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)...
AS '多煤体', SUM(CASE e.bmdwdm WHEN e.bmdwdm THEN e.kkk ELSE 0 END) AS '合计' FROM (SELECT bmdwdm, khmkdm, COUNT(bmdwdm) AS kkk FROM tblkaosheng AS d GROUP BY bmdwdm, khmkdm) AS e INNER JOIN tblbmdw ...
select @sql = @sql + ',sum(case 地区 when '''+地区+''' then 数量 end) ['+地区+']' + ',sum(case 地区 when '''+地区+''' then 比率 end) [比率]' from (select distinct 地区 from 表) as a select @sql...
Oracle中的SUM条件查询 1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量 SELECT AREA_CODE, SUM ( CASE WHEN IPTV_NBR IS NULL or IPTV_...GROUP BY AREA_CODE; 2、使用
强大的group by 代码如下: select stdname, isnull(sum( case stdsubject when ‘ 化学 ‘ then Result end), 0 ) [化学], isnull(sum( case stdsubject when ‘ 数学 ‘ then Result end), 0 ) [数学], isnull(sum...
ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)...
ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、--查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO¨ (003),数据库...
from KuChun t1 left join (select SellID, sum(sellnum)as snum,ProductType from Sell group by SellID,ProductType)t2 on t1.ShopID=t2.SellID and t1.ProductType=t2.ProductType order by t1.ShopID ...
sql统计类代码 select type,count(*) as 总数量, sum(case when level='一级' then 1 else 0 end) as 一级, sum(case when level='二级' then 1 else 0 end) as 二级, ...from table group by type
from TeamScore group by teamName select teamName,第1赛季得分 = case when seasonName = '第1赛季得分' then Score end ,第2赛季得分=case when seasonName = '第2赛季得分' then Score end ,第3赛季...
1,纵表转横表 纵表结构 Table_A: 转换后的结构: 纵表转横表的SQL示例: ...SUM(CASE WHEN Course = N'语文' THEN Grade ...SUM(CASE WHEN Course = N'数学' THEN Grade ...GROUP BY Name 2,横表转纵表
6.2.4 使用别名 6.3 排序与分组 6.3.1 升序排序与降序排序 6.3.2 多列字段排序 6.3.3 使用GROUPBY子句对查询结果进行分组 6.3.4 HAVING子句的应用 6.4 条件查询 6.4.1 WHERE单条件语句查询 6.4.2 运算符查询 6.4.3 ...
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 20、说明:列出数据库里所有的表名 select name from sysobjects where type='U' 21、说明:列出表里的所有的 ...
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type 显示结果: type ...
declare @s nvarchar...select @s = @s + ',sum(case when subject=''' + cast(subject as varchar) + ''' then result end) as ' + subject from CJ group by subject select @s = @s + ' from CJ group by [name]'
支持select sum(val) sum from topic group by interval('10s') 。按时间分组。 支持多列select count(1) total,productId,deviceId from messages group by productId,deviceId 。 支持select avg(temp) avgTemp ...