读书人

普普通通的行列转化为什么要这样写呢

发布时间: 2013-04-02 12:35:26 作者: rapoo

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


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得到的结果是一样的。

读书人网 >SQL Server

热点推荐