

SELECT user_name , MAX(CASE course WHEN '數學' THEN score END ) 數學, MAX(CASE course WHEN '語文' THEN score END ) 語文, MAX(CASE course WHEN '英語' THEN score END ) 英語 FROM test_tb_grade GROUP BY USER_NAME;
在 mybatis 中實現 動態行轉列
<select id="list" resultType="java.util.HashMap">
SELECT user_name ,
<if test="courses != null">
<foreach collection="courses " item="item" separator=",">
MAX(CASE course WHEN #{item} THEN score END ) "${item}"
</foreach>
</if>
FROM test_tb_grade
GROUP BY USER_NAME;
</select>
