`
wandejun1012
  • 浏览: 2737964 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ORACLE行转列

    博客分类:
  • DB
 
阅读更多

 

1、下面是一张表

 

Create   table   test   (name   char(10),km   char(10),cj   int);

 

 

select * from test

 

insert   into test   values( '张三 ', '语文 ',80) ;

insert  into  test   values( '张三 ', '数学 ',86) ;

insert  into  test   values( '张三 ', '英语 ',75) ;

insert into   test   values( '李四 ', '语文 ',78) ;

insert into   test   values( '李四 ', '数学 ',85) ;

insert  into  test   values( '李四 ', '英语 ',78) ;

 

 

2、将其转化成以下形式:

 

姓名       语文       数学       英语 
张三       80           86           75 
李四       78           85           78 
 

----------------------------------------------------------------------

法一:

select name,

sum(case  when km='语文' then cj else null end) as  语文 ,

sum(case  when km='数学' then  cj else null end)as  数学 ,

sum(case  when km='英语' then cj else null end)as  英语 from test group by name

 

法二:

PS:此法验证未通过,有时间再来求解

select   name, 

sum(decode(km, '语文 ',cj,1))   语文   , 

sum(decode(km, '数学',cj,2))   数学, 

sum(decode(km, '英语',cj,3))   英语 

from   test 

group   by   name

 

 

分享到:
评论

相关推荐

    oracle行转列

    "Oracle行转列"是数据库查询中常见的一种需求,尤其是在数据分析和报表展示时。这个主题涉及到Oracle数据库中的聚合函数、分析函数以及一些高级SQL技巧。 首先,"行转列"的基本思想是将数据库表中的一列数据转换为...

    Oracle行转列之pivot

    在Oracle数据库中,行转列(也称为数据透视)和列转行(unpivot)是SQL查询中用于数据转换的高级功能。...通过实际的使用示例和语法说明,本文旨在为读者提供一个全面的Oracle行转列之PIVOT功能的指南。

    oracle 行转列

    ### Oracle 行转列知识点详解 #### 一、Oracle 行转列概念及应用场景 在数据库操作中,经常需要对数据进行格式上的调整以便更好地分析或展示数据。其中,“行转列”是一种常见的数据处理方式,它指的是将原本存储...

    oracle行转列较精典的解决方案

    ### Oracle行转列的经典解决方案 在Oracle数据库管理与开发过程中,经常会遇到需要将数据表中的行数据转换为列数据的情况,这种操作被称为“行转列”或者“行列转换”。行列转换是数据分析、报表生成等场景中非常...

    Oracle行转列

    Oracle行转列 Oracle行转列是指在Oracle数据库中将行数据转换为列数据或将列数据转换为行数据的操作。这种操作在实际应用中非常有用,例如,在数据报表、数据分析和数据挖掘等领域都需要使用行转列操作。 1. 列...

    Oracle行转列(不定列)

    总的来说,Oracle数据库提供了`PIVOT`功能来实现行转列,对于确定的列数,`PIVOT`是高效且直接的解决方案。而在面对不定列时,动态SQL和自定义函数成为更合适的选择。在实际应用中,我们需要根据具体需求和数据特性...

    oracle行转列聚合函数WMSYS.WM_CONCAT

    ### Oracle行转列聚合函数WMSYS.WM_CONCAT详解 #### 一、概述 在进行数据处理时,经常会遇到需要将多行数据合并为单行的情况,这通常被称为“行转列”。Oracle数据库提供了多种方法来实现这一需求,其中`WMSYS.WM_...

    oracle动态行转列

    本文将深入探讨如何通过Oracle中的存储过程实现动态“行转列”,并结合给定文件的信息,详细解析其工作原理、优点及应用场景。 ### 核心知识点:Oracle动态行转列 #### 1. 存储过程与动态SQL 存储过程是预编译的...

    oracle行转列,列转行的例子

    oracle行转列,列转行的例子

    oracle实现行转列功能,并使用逗号进行隔开拼接,成为一条数据.pdf

    Oracle 实现行转列功能并使用逗号进行隔开拼接成为一条数据 Oracle 中实现行转列功能,并使用逗号进行隔开拼接,成为一条数据是指将多行数据合并成一行数据,并用逗号分隔每个字段的值。这种功能在实际应用中非常...

    Sql,oracle数据表行转列问题

    SQL行转列问题解决方案 SQL行转列问题是指将行记录转换为列记录的操作。本文将详细讲解SQL行转列问题的解决方案,并提供了一个具体的实例来帮助读者更好地理解该问题。 问题描述 假设我们有一个学生成绩表tb,...

    Oracle行转列题目:面试题目.sql

    面试题目.sql

    Oracle实现行转换成列的方法

    在Oracle数据库中,这种行转列的操作可以通过多种方法实现,包括使用`PIVOT`操作、`DECODE`函数以及自定义的聚合函数等。下面我们将详细讨论这些方法,并结合提供的实例进行解析。 首先,我们来看一个简单的例子,...

Global site tag (gtag.js) - Google Analytics