mysql 字段行转列
时间: 2024-01-05 19:20:54 浏览: 25
在MySQL中,可以使用PIVOT操作将字段行转换为列。具体步骤如下:
1. 创建一个临时表,用于存储转换后的数据。
2. 使用SELECT语句将原始数据查询出来,并使用CASE语句将每个字段的值转换为列。
3. 使用INSERT INTO语句将转换后的数据插入临时表中。
4. 使用SELECT语句从临时表中查询转换后的数据。
下面是一个示例:
```sql
-- 创建临时表
CREATE TABLE CJ2_Transformed (
Name varchar(32),
`科目` varchar(10),
`成绩` int(10)
);
-- 将字段行转换为列,并插入临时表
INSERT INTO CJ2_Transformed
SELECT Name,
CASE WHEN Subject = '语文' THEN '语文'
WHEN Subject = '数学' THEN '数学'
WHEN Subject = '物理' THEN '物理'
END AS `科目`,
Score
FROM (
SELECT Name, '语文' AS Subject, `语文` AS Score FROM CJ2
UNION ALL
SELECT Name, '数学' AS Subject, `数学` AS Score FROM CJ2
UNION ALL
SELECT Name, '物理' AS Subject, `物理` AS Score FROM CJ2
) AS subquery;
-- 查询转换后的数据
SELECT * FROM CJ2_Transformed;
```
这样,你就可以将原始表中的字段行转换为列,并在临时表中查询转换后的数据。