你可以这样
SELECt month, MAX(CASE WHEN unit = 'CS-1' THEN value END) `CS-1`, MAX(CASE WHEN unit = 'CS-2' THEN value END) `CS-2`, MAX(CASE WHEN unit = 'CS-3' THEN value END) `CS-3` FROM( SELECt unit, month, CASE month WHEN 'JAN' THEN jan WHEN 'FEB' THEN feb WHEN 'MAR' THEN mar WHEN 'APR' THEN apr WHEN 'MAY' THEN may WHEN 'JUN' THEN jun END value FROM table1 t CROSS JOIN ( SELECT 'JAN' month UNIOn ALL SELECT 'FEB' UNIOn ALL SELECT 'MAR' UNIOn ALL SELECT 'APR' UNIOn ALL SELECT 'MAY' UNIOn ALL SELECT 'JUN' ) c) q GROUP BY month ORDER BY FIELD(month, 'JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN')
输出:
| MonTH | CS-1 | CS-2 | CS-3 || ------- | ------ | ------ || ------ || 一月 100 | 111 | 331 || 2月| 200 | 222 | 123 || MAR | 300 | 333 | 423 || 年利率| 400 | 444 | 923 || 五月| 500 | 555 | 918 || 俊| 600 | 666 | 123 |
这是 SQLFiddle 演示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)