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>