----创建测试表

create table student_score(

name varchar2(20),

subject varchar2(20),

score number(4,1)

);

-----插入测试数据

insert into student_score (name,subject,score)values('张三','语文',78);

insert into student_score (name,subject,score)values('张三','数学',88);

insert into student_score (name,subject,score)values('张三','英语',98);

insert into student_score (name,subject,score)values('李四','语文',89);

insert into student_score (name,subject,score)values('李四','数学',76);

insert into student_score (name,subject,score)values('李四','英语',90);

insert into student_score (name,subject,score)values('王五','语文',99);

insert into student_score (name,subject,score)values('王五','数学',66);

insert into student_score (name,subject,score)values('王五','英语',91);

-----decode行转列

select name "姓名",

sum(decode(subject, '语文', nvl(score, 0), 0)) "语文",

sum(decode(subject, '数学', nvl(score, 0), 0)) "数学",

sum(decode(subject, '英语', nvl(score, 0), 0)) "英语"

from student_score

group by name;

------ case when 行转列

select name "姓名",

sum(case when subject='语文'

then nvl(score,0)

else 0

end) "语文",

sum(case when subject='数学'

then nvl(score,0)

else 0

end) "数学",

sum(case when subject='英语'

then nvl(score,0)

else 0

end) "英语"

from student_score

group by name;

oracle 使用 decode函数 或 case when 实现行转列的更多相关文章

  1. Oracle 中 decode 函数用法

    Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...

  2. oracle的decode函数

    以下转自百度, 类似于case... when... then...else...end... DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供 ...

  3. DECODE函数和CASE WHEN 比较

    http://blog.csdn.net/zhangbingtao2011/article/details/51384393 一,DECODE函数 其基本语法为: DECODE(value, if1, ...

  4. oracle的decode函数在mysql的实现

    oracle中的decode函数很好用,换成mysql中可以用类似下面的方法实现: SELECT IF(TRUE, '真值', '假值'); 如果想再弄复杂点,可以多个IF嵌套,不过嵌套的层次多了,代 ...

  5. Oracle数据库DECODE函数的使用.

    decode函数是Oracle数据库独有的. 语法为: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 例子:select decode(sign(变量1-变量2) ...

  6. Oracle用decode函数或CASE-WHEN实现自定义排序

    1 问题 对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序.但排序规则是默认的,数字.时间.字符串等都有自己默认的排序规则.有时候需要按自己的想法来排 ...

  7. Oracle 中 decode 函数用法(转)

    含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THE ...

  8. Oracle中decode函数 列变成行

    create table t_class(c_Id  number(10) primary key ,stuName varchar2(50),  --人名c_Name varchar2(50),   ...

  9. 【转载】oracle中decode函数用法

    1.DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else).表示假设value 等于if1时,DECODE函数的结果返回then1 ...

随机推荐

  1. Spring、Hello Spring

    1.引入Spring jar包 2.新建一个Person 接口和Person Bean public interface PersonIService { public void helloSprin ...

  2. 网易云课堂_程序设计入门-C语言_第二周:判断_2信号报告

    2 信号报告(5分) 题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength)    信号强度即大小. 其中R位于报告第一 ...

  3. 网易云课堂_程序设计入门-C语言_第一周:简单的计算程序_1逆序的三位数

    1 逆序的三位数(5分) 题目内容: 程序每次读入一个正三位数,然后输出逆序的数字.注意,当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 输入格式: 每个测试是一个3 ...

  4. javascript第五课表达式

    c#常用的表达式,一般这里都能用上 例如:三元表达式 var text=20>8? 真 : 假;  表达式?true:flase

  5. ChartControl一个小Demo

    我X轴设置的是时间,类型是DatetimeY轴设置的是数量,类型是Numerical当日期不一样时显示曲线正常,但是如果是同一天的话就成了下面的效果 怎么做才能让全部是同一天的时候显示小时为单位的曲线 ...

  6. Gulp插件汇总

    HTML&CSS autoprefixer - parse CSS and add vendor prefixes to rules by Can I Use. gulp-browser-sy ...

  7. JqMobi学习

    JqMobi+phonegap+html5 开发Android.ios应用

  8. mac使用小技

    xcodeブラックスクリーンの解決策: 1.cd ~/Library/Developer/Xcode/DerivedData 2.rm -fr *    //注释:-fr和*是分开的3.关闭模拟器,关 ...

  9. SQL Server 全文索引

    create table Document(ID int not null,Name nvarchar(255) not null,Body nvarchar(max) not null);go cr ...

  10. SQL Server Primary key 、clustered index 、 unique

    primary key: 1.主键不可以有空值. 2.不可以有重复行. unique : 1.可以有空行. 2.不可以有重复行. clustered index: 1.可以有重复行. 2.可以有空行. ...