2 qq 34654085 qq_34654085 于 2018.02.14 13:38 提问

sql 行转列 求教 字段名的转换 5C

图片说明
图片说明

我现在 想按照 字段bid 执行行转列把他转成第二个图片的那样
Mybatis怎么整。。。

5个回答

wangwensan
wangwensan   2018.02.14 14:47

建一个resultMap

weixin_41738192
weixin_41738192 建一个resultMap
3 个月之前 回复
weixin_41737761
weixin_41737761 建一个resultMap
3 个月之前 回复
qq_34654085
qq_34654085 能不能 把代码贴出来。。主要是sql这段的动态查询
3 个月之前 回复
rabbit_hog
rabbit_hog   2018.02.14 15:01

可以利用sum(if())查出各科成绩(我就假设表名是s好了)
select uid, uname, sum(if(cname='语文', score, 0)) as chinese, sum(if(cname='数学', score, 0)) as maths, sum(if(cname='英语', score, 0)) as english, sum(if(cname='政治', score, 0)) as politics
from s
group by uid

rabbit_hog
rabbit_hog 回复qq_34654085: 要求动态的话,是不是可以先查所有需要查询的科目返回List,然后再利用MyBatis的foreach标签拼接sql?
3 个月之前 回复
qq_34654085
qq_34654085 可是 我的课程都是动态的 你这样写 不就只能查这几科了吗
3 个月之前 回复
qq_32141725
qq_32141725   2018.02.14 16:36

select uid, uname, sum(if(cname='语文', score, 0)) as chinese, sum(if(cname='数学', score, 0)) as maths, sum(if(cname='英语', score, 0)) as english, sum(if(cname='政治', score, 0)) as politics
from s
group by uid

mango_love
mango_love   2018.02.14 16:41

小伙子,老夫这里有一本秘籍
http://blog.csdn.net/mango_love/article/details/51210020

qt228186471
qt228186471   2018.02.22 15:02
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!