- 浏览: 417517 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (267)
- 序列号 (1)
- jquery (14)
- Eclipse插件 (3)
- Flex (2)
- Rose (1)
- Myeclipse (3)
- maven (4)
- SpringSecurity (2)
- sproutcore (1)
- Http (2)
- svn (4)
- gwt (3)
- jetty (1)
- freebsd (1)
- java (29)
- Oracle (21)
- windows (1)
- Mybatis3.0 (3)
- Struts2 (6)
- easyui (1)
- JPA (1)
- UML (1)
- dom4j (1)
- design pattern (2)
- JavaScript (8)
- FreeMarker (2)
- SQLServer (1)
- memcached (3)
- urlrewrite (1)
- MonggoDB (1)
- Solr (1)
- Lucene (1)
- SQL (2)
- JODConverter (1)
- xml (2)
- pdf2swf (1)
- flexpaper (1)
- android (2)
- jsp (5)
- mobile (1)
- weblogic (3)
- Tomcat (8)
- xss (1)
- db2 (2)
- webservice (1)
- spring (2)
- Gradle (1)
- linux (4)
- ldap (1)
- 软件工程 (1)
- 开发模型 (1)
- linux系统硬件配置查看方法 (1)
- cas (3)
- mysql (1)
- HAProxy (0)
- html (1)
- Web前端 (1)
最新评论
-
super_zou:
...
世界主要国家地区下拉菜单三级联动1 -
ldl_xz:
http://www.9958.pw/post/wenku 曾 ...
利用pdf2swf将PDF转换成SWF -
superlxw1234:
请教一下楼主,你们是如何解决使用MAgent时候,一台主Mem ...
memcached集群-magent -
头子:
中间那段关于“空隙”的解决方式很赞
HTML固定表头Table -
qiankun:
比较实用,好好学习了一下
Mybatis 在dao中获取分页的总记录数
数据库行列转换
SQLserver 2000 行列转换例子:
1.
学号, 课程号, 分数
sid cid mark
030611 1000 70
030611 1001 80
030611 1002 75
030611 1003 86
030611 1004 70
030612 1000 74
030612 1001 83
030612 1002 75
030612 1003 86
030612 1004 75
030613 1000 75
030613 1001 85
030613 1002 85
030613 1003 86
030613 1004 90
=>转换为下面形式:
sid 1000 1001 1002 1003 1004 总分 平均分 最高分
030611 70 80 75 86 70 381 76 86
030612 74 83 75 86 75 393 78 86
030613 75 85 85 86 90 421 84 90
方法一:
select sid ,
[1000]=sum(case cid when '1000'then mark else null end),
[1001]=sum(case cid when '1001'then mark else null end),
[1002]=sum(case cid when '1002'then mark else null end),
[1003]=sum(case cid when '1003'then mark else null end),
[1004]=sum(case cid when '1004'then mark else null end),
[总分]=sum(case sid when sid then mark else null end),
[平均分]=avg(case sid when sid then mark else null end),
[最高分]=max(case sid when sid then mark else null end)
from sc group by sid;
方法二:
--1)声明一个字符串变量,以供动态拼装
declare @sql varchar(8000)
--2)拼装sql语句
set @sql = 'select sid'
--3)动态获得cid,为每个cid构建一个列 --把所有唯一的科目的名称都列举出来
select @sql=@sql+',['+cid+']=sum(case cid when '''+cid+''' then mark else null end)'from (select distinct cid from sc) as sc1
select @sql=@sql+',[总分]=sum(case sid when sid then mark else null end)'
select @sql=@sql+',[平均分]=avg(case sid when sid then mark else null end)'
select @sql=@sql+',[最高分]=max(case sid when sid then mark else null end)'
select @sql=@sql+'from sc group by sid'--分组
exec (@sql) --执行sql命令
ps:
CASE input_expression WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END
input_expression:是使用简单 CASE 格式时所计算的表达式。
when_expression:使用简单 CASE 格式时 input_expression 所比较的简单表达式。
result_expression:当 input_expression = when_expression 取值为 TRUE,即得到result_expression的值
else_result_expression:当比较运算取值不为 TRUE 时返回的表达式的值,省略else_result_expression时,
前面判断的结果不为TRUE时,默认为NULL
oracle 10g行列转换的例子:
NAME COURSE GRADE
---------- -------------------- ----------
张松 语文 74
张松 数学 83
张松 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
方法一:
select name,
sum(decode(course , '语文' ,grade ,0))"语文",
sum(decode(course , '数学', grade , null))"数学",
sum(decode(course , '物理' , grade , null))"物理",
max(decode(name,name,grade,null))"最高分",
sum(decode(name,name,grade,null))"总分",
avg(decode(name,name,grade,null))"平均分"
from tb group by name;
NAME 语文 数学 物理 最高分 总分 平均分
---------- ---------- ---------- ---------- ---------- ---------- ----------
李四 74 84 94 94 252 84
张松 74 83 93 93 250 83.3333333
- 一道java面试题_行列转换.rar (1.2 KB)
- 下载次数: 3
发表评论
-
解决Oracle 11g在用EXP导出时,空表不能导出
2017-02-09 16:30 403一、问题原因: 1 ... -
ORA-12519: TNS:no appropriate service handler found 解决
2016-12-30 13:20 399# processes、sessions是扩大并发连接数, ... -
ORA-01555: 快照过旧: 回退段号 (名称为 "") 过小ORA-22924: 快照太旧
2016-12-29 12:14 7549APPLIES TO:Oracle Database - En ... -
在Oracle中查询表的大小和表空间的大小
2016-12-29 11:18 547有两种含义的表大小。 ... -
Oracle定义DES加密解密及MD5加密函数示例
2016-12-16 11:22 620(1)DES加密函数 create or replac ... -
自定义字符串截取函数
2016-12-08 14:11 357CREATE OR REPLACE FUNCTION SBU ... -
通过v$sqlarea,v$sql查询最占用资源的查询
2016-03-15 15:47 448-----------------------v$sqlar ... -
Oracle的锁表与解锁
2015-12-11 13:58 1097Oracle的锁表与解锁 SELECT /*+ r ... -
oracle手动锁表
2015-12-11 12:19 822手工锁表: lock table tbl_t1 in ro ... -
oracle字符集设置
2015-03-16 14:40 536一、什么是Oracle字符集 Oracle字符集 ... -
行转列
2015-03-10 15:06 750select t.rank, t.Name from t_m ... -
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
2015-03-09 17:21 1728--- The error occurred in ibat ... -
更改数据库管理员密码
2014-11-05 13:24 1122更改数据库管理员密码; sqlplus /nol ... -
查询Oracle正在执行和执行过的SQL语句
2013-12-16 13:51 673---正在执行的select a.username, a.si ... -
Oracle 密码过期与锁定的设置
2012-09-26 10:28 1434查询默认的profile的密码过期参数的设置 ... -
Window 下 启动Oralce服务命令
2012-09-17 09:28 2814在window 下启动Oracle服务的命令 @ ... -
Oracle job 参数说明
2012-02-17 18:04 1387Job的参数: 一:时间间隔执行(每分钟,每天 ... -
oracle 随机函数
2012-01-14 19:51 1029Oracle随机函数—dbms_random ... -
Oracle 随机获取记录
2012-01-14 17:58 11811. Oracle 随机获取10条记录 ... -
Oracle创建用户、表空间、导入导出、...命令
2011-12-05 10:44 906Oracle创建用户、表空间、导入导出、...命令 / ...
相关推荐
SQL 行列转换扩展 SQL 行列转换扩展是指将数据库表中的行数据转换为列数据,或者将列数据转换为行数据的操作。这种操作在数据分析和报表生成中非常常见。在本文中,我们将介绍两种类型的行列转换扩展方法:行转列...
在Excel表格处理中,行列转换是一项非常常见的操作,尤其对于数据整理和分析至关重要。"Excel行列转换工具"正是为了简化这一过程而设计的,它提供了一键式的转换功能,使得用户能够快速、高效地在行与列之间切换,极...
在Oracle数据库中,行列转换是一种常见的数据操作需求,主要用于将数据从行的形式转换为列的形式,或者反之。这种转换在数据分析、报表制作等场景中尤为常见。本文将深入解析一个Oracle行列转换的例子,通过详细解释...
### SQL Server 行列转换知识点解析 #### 一、行列转换概述 在处理数据库查询时,我们经常会遇到需要将表中的行数据转换为列数据的需求,这种操作通常被称为“行列转换”。例如,当我们需要汇总不同类别的数据并将...
在Oracle数据库中,行列转换是一项常用且强大的功能,它允许数据在不同的维度上进行转换,以便于数据分析和报告。本文将深入探讨Oracle中实现行列转换的几种方法,包括使用`UNION ALL`、`MODEL`子句以及集合类型(`...
【Oracle 行列转换实例】 在数据库管理中,有时我们需要将数据表的行与列进行转换,以便于数据分析和报表展示。Oracle 提供了一种高效的方法,即使用分析函数来实现这种行列转换。分析函数主要设计用于处理累计计算...
SQL 语句行列转换(附带数据库、表、视图操作) SQL 语句行列转换是数据库管理系统中的一种常见操作,它可以将数据从行转换为列,或者从列转换为行。在这个过程中,需要使用数据库管理语言(Database Management ...
在处理数据时,有时我们需要将数据从行格式转换为列格式,或者反之,这一过程被称为“行列转换”。Oracle提供了多种方法来实现这样的转换,这对于数据分析、报表制作以及优化查询性能等场景非常有用。下面我们将深入...
其中,行列转换是数据处理中常见的一种需求,尤其是在进行数据分析、报表生成等场景时。本文将深入解析MSSQL中实现行列转换的存储过程及其工作原理,帮助读者理解和掌握这一关键技术。 ### MSSQL行列转换存储过程 ...
行列互换工具毫秒级_V2.2.2行列转换
### 行列转换SQL存储过程代码解析 #### 核心知识点概述 本篇文章将深入探讨一个SQL存储过程的实现方式,该存储过程主要用于完成“行转列”(即行列转换)的操作。通过这种方式,可以有效地将数据库表中的行数据...
在Oracle SQL中,行列转换是一种常见的数据操作需求,主要用于将数据表中的行转换为列,或将列转换为行,以此来满足不同的数据展示或分析需求。这种转换在处理多维度数据、汇总数据或是进行复杂查询时特别有用。下面...
### SQL 2008 行列转换 (Pivot) 的动态实现 #### 知识点一:行列转换(Pivot)的概念与应用场景 在数据库查询中,有时我们需要将数据表中的行转换为列,或者将列转换为行,这种操作被称为行列转换。行列转换在报表...
### Java面试题:行列转换详解 #### 一、问题背景 在进行数据分析或者报表处理时,经常需要将数据从一种格式转换成另一种格式以便更好地展示或分析。其中一种常见的转换需求是从行转列(即行列转换)。本篇文章将...
本篇文章将深入探讨“MySQL 查询行列转换”的概念及其实际应用,这在数据分析和报表展示时尤其重要。 行转列是数据处理中的常见需求,尤其是在数据透视或汇总分析时。在 MySQL 中,我们可以使用几种方法实现这一...
### SQL查询中的行列转换 在数据库管理中,经常会遇到数据结构需要调整的情况,尤其是当原始数据的排列方式与实际需求不一致时。本篇文章将详细解释如何通过一条SQL查询语句实现行列转换,并且会针对两种不同的SQL ...
### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...
EXCEL 行列转换工具