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;
  • 相关阅读:
    【HDOJ】2774 Shuffle
    【POJ】2170 Lattice Animals
    【POJ】1084 Square Destroyer
    【POJ】3523 The Morning after Halloween
    【POJ】3134 Power Calculus
    【Latex】如何在Latex中插入伪代码 —— clrscode3e
    【HDOJ】4801 Pocket Cube 的几种解法和优化
    【HDOJ】4080 Stammering Aliens
    【HDOJ】1800 Flying to the Mars
    SQL语法
  • 原文地址:https://www.cnblogs.com/estellez/p/3941592.html
Copyright © 2011-2022 走看看