oracle sql列转行_oracle SQL 行、列转换

oracle SQL竖表转横表(行转列)T_T_STUDENT表查询记录如下,要转成横表姓名 课程 成绩1 张飞 语文 802 张飞 数学 873 关羽 语文 974 张飞 英语 685 关羽 数学 536 刘备 语文 90create t...
摘要由CSDN通过智能技术生成

oracle SQL竖表转横表(行转列)

T_T_STUDENT表查询记录如下,要转成横表

姓名     课程     成绩

1     张飞     语文     80

2     张飞     数学     87

3     关羽     语文     97

4     张飞     英语     68

5     关羽     数学     53

6     刘备     语文     90

create table T_T_STUDENT

(

name VARCHAR2(20),

course VARCHAR2(20),

score NUMBER(10)

)

方法一:

--用decode实现,

SELECT T.NAME,

SUM(DECODE(T.Course, '语文', T.Score)) 语文,

SUM(DECODE(T.Course, '数学', T.Score)) 数学,

SUM(DECODE(T.Course, '英语', T.Score)) 英语

FROM T_T_STUDENT T

GROUP BY T.NAME

方法二:

--用case when 实现

SELECT T.NAME,

SUM(CASE T.Course WHEN '语文' THEN T.Score ELSE 0 END) 语文,

SUM(CASE T.Course WHEN '数学' THEN T.Score ELSE 0 END) 数学,

SUM(CASE T.Course WHEN &#

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值