查询 select * from tcourse where 姓名=A
姓名 课程 老师 得分
A 数学 数1 80
A 语文 语1 75
A 外语 外1 90期望输出:
数学成绩 语文成绩 外语成绩
姓名 课程 老师 得分 课程 老师 得分 课程 老师 得分
A 数学 数1 80 语文 语1 75 外语 外1 90将上面一个人的三条成绩(三行四列),转为一行数据(一行10列),可以用sql,或者存储过程,求大神解答。
姓名 课程 老师 得分
A 数学 数1 80
A 语文 语1 75
A 外语 外1 90期望输出:
数学成绩 语文成绩 外语成绩
姓名 课程 老师 得分 课程 老师 得分 课程 老师 得分
A 数学 数1 80 语文 语1 75 外语 外1 90将上面一个人的三条成绩(三行四列),转为一行数据(一行10列),可以用sql,或者存储过程,求大神解答。
SELECT 姓名,
MAX(CASE WHEN 课程='数学' THEN 课程 ELSE '' END) AS 课程_数学,
MAX(CASE WHEN 课程='数学' THEN 老师 ELSE '' END) AS 老师_数学,
MAX(CASE WHEN 课程='数学' THEN 得分 ELSE '' END) AS 得分_数学,
MAX(CASE WHEN 课程='语文' THEN 课程 ELSE '' END) AS 课程_语文,
MAX(CASE WHEN 课程='语文' THEN 老师 ELSE '' END) AS 老师_语文,
MAX(CASE WHEN 课程='语文' THEN 得分 ELSE '' END) AS 得分_语文,
MAX(CASE WHEN 课程='外语' THEN 课程 ELSE '' END) AS 课程_外语,
MAX(CASE WHEN 课程='外语' THEN 老师 ELSE '' END) AS 老师_外语,
MAX(CASE WHEN 课程='外语' THEN 得分 ELSE '' END) AS 得分_外语
FROM tcourse
GROUP BY 姓名
cur.execute(sql)
result=cur.fetchall()listaa=[]
for i,a,b in zip(result[0],result[1],result[2]):
listaa.append(i)
listaa.append(a)
listaa.append(b)
listaa.remove('A')
listaa.remove('A')
print(listaa)
得到的元素为10的一个list 再插入进mysql就行