在平常的工作中或者面试中,我们可能有遇到过数据库的纵横表的转换问题。今天我们就来讨论下。 1.创建表 首先我们来创建一张表。 sql语句: 执行结果: 2. 传统的纵横表转换 2.1 纵表转横表 先看看我们要转成的横表张什么样子: 既然这个表只有两列 ...
创建表scores 一 传统的行列转换 纵表转横表 我们要转成的横表是这样子的: 既然这个表只有两列,那么可以根据姓名进行分组。先把姓名拼凑出来,后面的分数我们再想办法。 结果: 分析: 我们先拿到语文这个科目的分数。既然我们用到了group by 语句,这里肯定要用聚合函数来求分数。 而且我们只需要语文这一科的成绩,分组出来的 一共有 列 ,分别是 语文 数学 物理 。 那么就需要判断科目来取分 ...
2016-06-28 08:18 1 18643 推荐指数:
在平常的工作中或者面试中,我们可能有遇到过数据库的纵横表的转换问题。今天我们就来讨论下。 1.创建表 首先我们来创建一张表。 sql语句: 执行结果: 2. 传统的纵横表转换 2.1 纵表转横表 先看看我们要转成的横表张什么样子: 既然这个表只有两列 ...
首先我们建立一张表,名为scoreInfo,各个字段的设计如下图,分别是name,course,score,表示姓名,成绩与分数,如图所示。 2 我们往表中加入数据,分别添加小明与小花的语文和数 ...
创建表scores 一、传统的行列转换 纵表转横表 我们要转成的横表是这样子的: pivot是sql server 2005 提供的运算符,所以只要数据库在05版本以上的都可以使用。主要用于行和列的转换。 pivot纵表转横表 select ...
-- 对一张大表的每一行,后面加多种label值 -- 其实就是笛卡尔积,举例 -- SELECT * FROM dev.dev_jiadian_user_yuge_temp -- CROSS JOIN -- ( -- SELECT 0 AS label -- UNION ...
模拟数据: 大多数数据库存储的数据都是这样,但是实际业务则需要我们对数据进行处理如下: 这就是很多时候面试也会遇到的列传行的问题。 创建数据库以及数据: View Code 对于列传行我们参考《T-SQL基础教程》中提供的方式 方法 ...
(1)首先可以想到根据姓名来进行分组 select 姓名 from scores group by 姓名 (2)接着使用case when方法 显示我们的 ‘' ...
使用过SQL Server 2000的人都知道,要想实现行列转换,必须综合利用聚合函数和动态SQL,具体实现起来需要一定的技巧,而在SQL Server 2005中,使用新引进的关键字PIVOT/UNPIVOT,则可以很容易的实现行列转换的需求。 在本文中我们将通过两个简单的例子详细讲解 ...
前言: 在日常的工作中,使用数据库查看数据是很经常的事,数据库的数据非常多,如果此时的数据设计是一行行的设计话,就会有多行同一个用户的数据,查看起来比较费劲,如果数据较多时,不方便查看,为了更加方便工作中查看数据,如果可以随时切换行列数据的显示就好啦。 上图详细看这种情况:同一个test ...