mysql 将列值转变为列的方法

网络推广 2025-05-15 04:35www.dzhlxh.cn网络推广竞价

应同学的要求,让我们将列值转变为列,以展示更为直观的数据信息。在这个场景中,我们有一个名为 `rate` 的表,其中包含学生的姓名(`uname`)、科目(`object`)和对应的分数(`score`)。我们的目标是将每个学生的不同科目的分数汇总到各自的列中,以便更清晰地查看。以下是实现这一目标的 SQL 语句。

```sql

-- 创建库

CREATE TABLE `rate` (

`uname` VARCHAR(300), -- 学生姓名

`object` VARCHAR(300), -- 科目名称

`score` VARCHAR(300) -- 对应分数

);

INSERT INTO rate (uname, object, score)

VALUES

('aaa', 'chinese', '67'),

('aaa', 'math', '89'),

('aaa', 'physical', '89'),

('bbb', 'chinese', '67'),

('bbb', 'math', '75'),

('bbb', 'physical', '89');

```

接下来,我们通过一个查询语句将列值转变为列:

```sql

-- 查询语句,将列值转变为列

SELECT

uname AS '姓名',

SUM(CASE WHEN object = 'chinese' THEN score ELSE NULL END) AS '语文',

SUM(CASE WHEN object = 'math' THEN score ELSE NULL END) AS '数学',

SUM(CASE WHEN object = 'physical' THEN score ELSE NULL END) AS '物理'

FROM rate

GROUP BY uname;

```

Copyright © 2016-2025 www.dzhlxh.cn 金源码 版权所有 Power by

网站模板下载|网络推广|微博营销|seo优化|视频营销|网络营销|微信营销|网站建设|织梦模板|小程序模板