在MySQL中,没有内置的UNPIVOT函数来实现数据逆转操作。但是可以使用UNION ALL语句来实现类似的功能。下面是一个示例:
假设有一个表格包含以下数据:
| id | name | score1 | score2 | score3 | |----|------|--------|--------|--------| | 1 | Alice| 80 | 85 | 90 | | 2 | Bob | 75 | 70 | 80 | | 3 | Chris| 90 | 95 | 85 |
要将数据进行逆转,可以使用以下SQL语句:
SELECT id, name, 'score1' AS score_type, score1 AS score FROM table_name UNION ALL SELECT id, name, 'score2' AS score_type, score2 AS score FROM table_name UNION ALL SELECT id, name, 'score3' AS score_type, score3 AS score FROM table_name
执行以上SQL语句后,会得到如下结果:
| id | name | score_type | score | |----|------|------------|-------| | 1 | Alice| score1 | 80 | | 1 | Alice| score2 | 85 | | 1 | Alice| score3 | 90 | | 2 | Bob | score1 | 75 | | 2 | Bob | score2 | 70 | | 2 | Bob | score3 | 80 | | 3 | Chris| score1 | 90 | | 3 | Chris| score2 | 95 | | 3 | Chris| score3 | 85 |
这样就实现了将原始表中的列转换为行的操作。