mysql简单行转列

本文介绍了一个使用SQL创建表格并插入数据的示例,通过复杂的查询语句实现了对学生不同科目的最高分进行分组统计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DROP TABLE IF EXISTS `tb`;
CREATE TABLE `tb` (
`id`  varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`name`  varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`pro`  varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`score`  int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci

;

-- ----------------------------
-- Records of tb
-- ----------------------------
BEGIN;
INSERT INTO `tb` VALUES ('1', '张三', '语文', '74'), ('2', '张三', '数学', '83'), ('4', '张三', '物理', '93'), ('5', '李四', '语文', '74'), ('6', '李四', '数学', '84'), ('8', '李四', '物理', '94');
COMMIT;
SELECT name ,
MAX(CASE pro WHEN '语文' THEN score ELSE 0 END ) 语文,
MAX(CASE pro WHEN '数学' THEN score ELSE 0 END ) 数学,
MAX(CASE pro WHEN '物理' THEN score ELSE 0 END ) 物理
FROM tb  
GROUP BY name;

简单行转列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值