首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

普普通通的行列转化,为什么要这样写呢,脑子转不过来了

2013-04-02 
普通的行列转化,为什么要这样写呢,脑子转不过来了啊表:看着都是这么写的:max不是求最大值的么?和case when

普通的行列转化,为什么要这样写呢,脑子转不过来了啊
普普通通的行列转化,为什么要这样写呢,脑子转不过来了
表:普普通通的行列转化,为什么要这样写呢,脑子转不过来了
看着都是这么写的:


max不是求最大值的么?和case when放在一起用为什么会这样的?不知道有没有详细一点的解释普普通通的行列转化,为什么要这样写呢,脑子转不过来了
[解决办法]
这个查询不是有case when的条件么,没有MAX及GROUP BY查询后的数据类似

sid   01  02  03
01    80  0   0
01    0   90  0
01    0   0   99

这样子可以看明白不,就是把 01 02 03 这几个做成列即字段了,然后把对应的值写到里面,加MAX查询后会变为行数据。
[解决办法]
http://blog.csdn.net/gongjian0628/article/details/7869375   看看这个 例子也许对你有帮助
[解决办法]
引用:
表:
看着都是这么写的:SQL code?123456select sc.Sid,max(CASE sc.Cid WHEN '01' THEN sc.score ELSE 0 END) '01',max(CASE sc.Cid WHEN '02' THEN sc.score ELSE 0 END) '02',max(CASE sc.Cid WHEN '03' THEN sc.score ELSE……
你的写法没问题啊?你想问什么?数据的结果不是你想要的?min在你这个例子里面不行,如果把max单纯替换为min,那么出来的结果全是0.0。用max的时候,因为case when做了判断,如果不符合条件就硬性赋值0,而你那里有数据的都比0大,所以就取到那些数据。
[解决办法]
针对lz的测试数据来说,max,sum得到的结果是一样的。

热点排行