竖的数据表横的数据表)例子:

--创建tb_course表,并插入测试数据

CREATE TABLE tb_course(
NAME VARCHAR(20), ##姓名
course VARCHAR(20), ##课程
grade INT ##成绩
);

--测试数据

INSERT INTO tb_course (NAME,course,grade) VALUES('tom','JDBC',20);
INSERT INTO tb_course (NAME,course,grade) VALUES('tom','Hibernate',50);
INSERT INTO tb_course (NAME,course,grade) VALUES('tom','Spring',80);
INSERT INTO tb_course (NAME,course,grade) VALUES('marry','JDBC',30);
INSERT INTO tb_course (NAME,course,grade) VALUES('marry','Hibernate',60);
INSERT INTO tb_course (NAME,course,grade) VALUES('marry','Spring',70);

如图:

--开始做翻转

--方法一(在oracle同这种方法):

SELECT NAME,

SUM(DECODE(course,'JDBC',gradem,0)) JDBC,

SUM(DECODE(course,'Hibernate',gradem,0)) Hibernate,

SUM(DECODE(course,'Spring',gradem,0)) Spring

FROM tb_course GROUP BY NAME;

--方法二(在mysql用这种方法):

SELECT NAME,
SUM(IF(course='JDBC',grade,0)) JDBC,
SUM(IF(course='Hibernate',grade,0)) Hibernate,
SUM(IF(course='Spring',grade,0)) Spring
FROM tb_course GROUP BY NAME;

--方法三(这种方法比较麻烦,用自身做一个多表连接,字段多的时候很容易乱):
SELECT t4.name,t1.JDBC,t2.Hibernate,t3.Spring FROM
(SELECT NAME,grade AS JDBC FROM tb_course WHERE course = 'JDBC') t1,
(SELECT NAME,grade AS Hibernate FROM tb_course WHERE course = 'Hibernate') t2,
(SELECT NAME,grade AS Spring FROM tb_course WHERE course = 'Spring') t3, 
(SELECT DISTINCT NAME FROM tb_course) t4
WHERE t1.name = t4.name AND t2.name = t4.name AND t3.name = t4.name;

执行以上任意一种方法后表会变成:

###########################################################超级分割线###########################################################

(横的数据表变竖的数据表)例子:

--创建tb_courses表,并插入测试数据

CREATE TABLE tb_courses(
NAME VARCHAR(10),
JDBC INT,
Hibernate INT,
Spring INT
);

--测试数据

INSERT INTO tb_courses VALUES('tom',20,50,80);
INSERT INTO tb_courses VALUES('marry',30,60,70);

如图:

--开始做翻转

--方法一(在oracle 与mysql都可用这种方法):

(SELECT NAME,'JDBC' COURSE,JDBC grade FROM tb_courses)
UNION
(SELECT NAME,'Hibernate' COURSE,Hibernate grade FROM tb_courses)
UNION
(SELECT NAME,'Spring' COURSE,Spring grade FROM tb_courses)
ORDER BY NAME DESC;

执行后表会变成:

温馨提示:

UNION与UNION ALL的区别:union与union all 都是查询结果的并集,但是union多了一步去重复数据,所以效率上没union all高,另外union会对查询结果做排序。

数据库中的行列转换(横竖转换)相关推荐

  1. c 将图片存入到mysql数据库中_如何将图片转换存入到数据库中,并从数据库中取出转换成图片...

    有时候我们想把图片存入到数据库中,尽管这不是一种明智的选择,但有时候还是不得以会用到,下面说说将图片转换成byte[]数组存入到数据库中去,并从数据库中取出来转换成图像显示出来. 首先,我们要把图片存 ...

  2. mysql 中文数字转换_数据库中数字和中文的转换问题

    public class DaoUtil{ /** * 系统字典表 * 适用于列表循环时,根据编码获取汉字 * @param appdicid * @return */ public static H ...

  3. mysql date to long_数据库中日期字段与long转换

    oracle- java 1.date转long : 当前时间转成long : 秒级(mysql可直接用) SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY- ...

  4. Excel 横竖转换

    http://jingyan.baidu.com/article/5552ef4717c6df518efbc97f.html Excel中的数据怎样横竖转换 浏览: 4764 | 更新: 2011-1 ...

  5. .NET Core采用的全新配置系统[7]: 将配置保存在数据库中

    我们在<聊聊默认支持的各种配置源>和<深入了解三种针对文件(JSON.XML与INI)的配置源>对配置模型中默认提供的各种ConfigurationSource进行了深入详尽的 ...

  6. 把数据库中有关枚举项值的数字字符串转换成文字字符串

    原文:把数据库中有关枚举项值的数字字符串转换成文字字符串 标题可能无法表达我的本意.比如,有这样一个枚举: public enum MyChoice { MyFirstChoice = 0, MySe ...

  7. 将数据库中日期格式转换后显示在界面

    笔者用的Mybatis,在将数据库中的date取出之后想显示在界面上,但是总是格林尼治时间,看着特别难受,而且当你修改的时候,是不能被识别的,这个就很烦.于是,笔者,找到一个好办法. 使用 JSTL ...

  8. java中时间入数据库格式转换_数据库中字段类型为datetime,转换成java中的Date类型...

    数据类型对照 点击打开链接 JDBC: PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuer ...

  9. mysql数据库的数据类型转换_MySQL 和Server 2000 数据库中数据类型的转换

    问题阐述 在某些特殊的时候,可能要将MySQL 数据库转换为SQL Server 2000 数据库,这时问题也就随之而来.例如,在MySQL 数据库中,创建的字段使用varchar 类型,该类型的数据 ...

最新文章

  1. android进程自动启动时间,如何统计Android App启动时间
  2. 牛客小白月赛2-B小马过河(求点到直线的垂足)
  3. 在未来给我们看病的将是医疗机器人?
  4. linux课程设计qq,仿QQ聊天系统课程设计.doc
  5. UniversalVideoView
  6. stm32 FATFS文件系统如何减少Flash和RAM占用,FATFS移除中文文件名,FATFS移除动态内存
  7. java实现系统参数的存储_基于ZooKeeper,Spring设计实现的参数系统
  8. docker学习笔记一:基本安装和设置容器静态ip
  9. Android GPS开发总结
  10. js连接mysql数据库
  11. 分享一个十二色相环取色RGB颜色值与十六进制色码转换工具
  12. JSchException: Algorithm negotiation fail
  13. 如何修复win7蓝牙服务器,处理Bluetooth外围设备驱动在win7中出错的修复方法
  14. 如何将多个mp3文件合并成一个?
  15. Neo4j3.5学习笔记——Traversal遍历之黑客帝国
  16. 经典同步时序逻辑电路分析汇总(第六道)(同步四进制可逆加减法计数器)
  17. oracle中索引的使用
  18. 自然语言处理NLP——GSDMM用于短文本聚类
  19. 【Unity-UGUI控件全面解析】| Dropdown 下拉菜单组件详解
  20. 常用的几款Vue移动端UI推荐

热门文章

  1. 百度语音转换技术,让失聪人和盲人独立对话成为可能!
  2. 小天才注册“老天才”商标,或将进军中老年市场?
  3. 大数据分类和架构简介
  4. java读取resource下的模板文件
  5. 沃通SSL精灵,让网站HTTPS永不过期
  6. CCRC信息安全服务资质六大方向申请条件----安全集成,安全运维 风险评估 应急处理 软件安全 灾难备份与恢复
  7. 加密的m3u8视频下载支持本地m3u8
  8. 旷视科技face++ AI工程师面经·
  9. 怎么能提取视频中的文字?这几个办法很好用
  10. APISIX安装与灰度、蓝绿发布