mysql行列转置,在线等!

SET @sql = NULL;
SET @stuid = '1003';
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(c.coursenm = ''',
c.coursenm,
''', s.scores, 0)) AS ''',
c.coursenm, ''''
)
) INTO @sql
FROM courses c;
以上代码中MAX(IF(c.coursenm = ''',c.coursenm,''', s.scores, 0)) AS ''',c.coursenm, ''''
这句''',c.coursenm,''' 三个单引号加逗号加字段,怎么理解?
max怎么理解啊?

1. 利用SUM(IF()) 生成列 + WITH ROLLUP 生成汇总行,并利用 IFNULL将汇总行标题显示...
2. 利用SUM(IF()) 生成列 + UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为 Tot...
3. 利用SUM(IF()) 生成列,直接生成结果不再利用子查询 ...
4. 动态,适用于列不确定情况
温馨提示:答案为网友推荐,仅供参考
相似回答