5.1.行转列
CREATE TABLE `table1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`year` varchar(50) DEFAULT NULL,
`month` varchar(50) DEFAULT NULL,
`amount` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1
SELECT
`year`,
MAX(
CASE
WHEN MONTH = '1' THEN
amount
END
) AS '一月',
MAX(
CASE
WHEN MONTH = '2' THEN
amount
END
) AS '二月',
MAX(
CASE
WHEN MONTH = '3' THEN
amount
END
) AS '三月',
MAX(
CASE
WHEN MONTH = '4' THEN
amount
END
) AS '四月'
FROM
table1
GROUP BY
`year`;
5.2列转行
CREATE TABLE `table2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` bigint(50) DEFAULT NULL,
`file_url` varchar(50) DEFAULT NULL,
`file_name` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
SELECT
user_id,
GROUP_CONCAT(file_name,':',file_url) AS file
FROM
table2 GROUP BY user_id