zoukankan      html  css  js  c++  java
  • 数据库行列转换

    mysql 中的行列转换

    1.假设有一张表示cj表
    Name Subject Result
    张三 语文 80
    张三 数学 90
    张三 物理 85
    李四 语文 85
    李四 数学 92
    李四 物理 82

    要求查询结果:
    姓名 语文 数学 物理
    张三 80 90 85
    李四 85 92 82

    --创建cj表SQL
    CREATE TABLE `student` (
      `id` INT(11) NOT NULL AUTO_INCREMENT,
      `name` VARCHAR(20) DEFAULT NULL,
      `subject` VARCHAR(20) DEFAULT NULL,
      `result` INT(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=INNODB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
    
    --插入数据SQL
    INSERT INTO student
       (`id`, `name`, `subject`, `result`)
    VALUES
       (1, '张三', '语文', 80);
    
    INSERT INTO student
       (`id`, `name`, `subject`, `result`)
    VALUES
       (2, '张三', '数学', 90);
    
    INSERT INTO student
       (`id`, `name`, `subject`, `result`)
    VALUES
       (3, '张三', '物理', 85);
    
    INSERT INTO student
       (`id`, `name`, `subject`, `result`)
    VALUES
       (4, '李四', '语文', 85);
    
    INSERT INTO student
       (`id`, `name`, `subject`, `result`)
    VALUES
       (5, '李四', '数学', 92);
    
    INSERT INTO student
       (`id`, `name`, `subject`, `result`)
    VALUES
       (6, '李四', '物理', 89);
       
       
    --查询SQL
    SELECT 
        DISTINCT a.name 姓名,
        (SELECT result FROM student WHERE NAME = a.name AND SUBJECT = '语文') 语文,
        (SELECT result FROM student WHERE NAME = a.name AND SUBJECT = '数学') 数学,
        (SELECT result FROM student WHERE NAME = a.name AND SUBJECT = '物理') 物理   
    FROM student a;
  • 相关阅读:
    go第二天
    go第一天
    engish
    english
    git 生成公钥
    tp5 验证码
    css处理文本折行截断
    数组对象总结(牢记)
    全局css样式
    Flexbox 弹性盒子布局
  • 原文地址:https://www.cnblogs.com/estellez/p/3941592.html
Copyright © 2011-2022 走看看