-- 对一张大表的每一行,后面加多种label值 -- 其实就是笛卡尔积,举例 -- SELECT * FROM dev.dev_jiadian_user_yuge_temp -- CROSS ...
首先我们建立一张表,名为scoreInfo,各个字段的设计如下图,分别是name,course,score,表示姓名,成绩与分数,如图所示。 我们往表中加入数据,分别添加小明与小花的语文和数学成绩,如图所示。 接下来,我们要进行行列转换,列应该是name,语文,数学。我们首先要考虑是如何得到列名,我们可以通过分组得到课程名称。如图所示,我们通过分组语句,从查询结果我们可以看出课程名的拼接字符串。 ...
2015-05-16 17:14 0 2138 推荐指数:
-- 对一张大表的每一行,后面加多种label值 -- 其实就是笛卡尔积,举例 -- SELECT * FROM dev.dev_jiadian_user_yuge_temp -- CROSS ...
模拟数据: 大多数数据库存储的数据都是这样,但是实际业务则需要我们对数据进行处理如下: 这就是很多时候面试也会遇到的列传行的问题。 创建数据库以及数据: View Code 对于列传行我们参考《T-SQL基础教程》中提供的方式 方法 ...
(1)首先可以想到根据姓名来进行分组 select 姓名 from scores group by 姓名 (2)接着使用case when方法 显示我们的 ‘' ...
创建表scores 一、传统的行列转换 纵表转横表 我们要转成的横表是这样子的: pivot是sql server 2005 提供的运算符,所以只要数据库在05版本以上的都可以使用。主要用于行和列的转换。 pivot纵表转横表 select ...
行转列测试数据: --测试数据 if not object_id(N'Tempdb..#T') is null drop table #T Go Create table #T([Name] ...
来源:http://www.studyofnet.com/news/295.html PIVOT通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT与PIVOT执行相反的操作,将表值表达式的列转换为列值。 通俗简单 ...
1.列转行 select class_id,MAX(CASE kemu when '语文' then score ELSE 0 end)as '语文' ,MAX(CASE kemu when '数学 ...
SQL Server 行转列 在SQL Server 2005中PIVOT 用于将列值转换为列名(行转列),在SQL Server 2000中是没有这个关键字的 只能用case语句实现。 SQL Server 2000 行转列 如图所示,已经按照脚本中指 ...