sql与oracle中有关case和decode的用法(行转列)及比较(转
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了sql与oracle中有关case和decode的用法(行转列)及比较(转,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2287字,纯文字阅读大概需要4分钟。
内容图文
引:
为了举例说明,这里创建了一张成绩表,如下图所示:
比较:
1、sql中,这两个函数我们仅能使用case,代码及结果如下:
select name,
case Subject
when ‘语文‘ then 1
when ‘数学‘ then 2
when ‘英语‘ then 3 --else 3
end as ‘科目代码‘
from Results
同样的,我们可以用case实现行转列,代码及结果如下:
select Name,
sum(case when Subject=‘语文‘ then Result end) ‘语文‘,
sum(case when Subject=‘数学‘ then Result end) ‘数学‘,
sum(case when Subject=‘英语‘ then Result end) ‘英语‘
from Results
group by Name
2、但是,在oracle中,这两个函数我们都可以使用,代码及结果如下:
decode用法:select Name,decode(Subject,‘语文‘,1,‘数学‘,2,‘英语‘,3) 科目代码 from results;
select Name,decode(Subject,‘语文‘,1,‘数学‘,2,3) 科目代码 from Results;
case用法:
select name,
case
when Subject=‘语文‘ then 1
when Subject=‘数学‘ then 2
when Subject=‘英语‘ then 3 --else 3
end as 科目代码
from Results;
这两种方法均能达到同样的结果:
同样的,我们可以使用这两个函数实现行转列,代码及结果如下:
decode:
select
Name,
sum(decode(Subject,‘语文‘,Result,0)) 语文,
sum(decode(Subject,‘数学‘,Result,0)) 数学,
sum(decode(Subject,‘英语‘,Result,0)) 英语
from Results
group by Name;
case:
select
Name,
sum((case when Subject=‘语文‘ then Result else 0 end)) 语文,
sum((case when Subject=‘数学‘ then Result else 0 end)) 数学,
sum((case when Subject=‘英语‘ then Result else 0 end)) 英语
from Results
group by Name;
数据库表与行转列的中间结果(想想还是也附上)
oracle中:
select
Name,
decode(Subject,‘语文‘,Result,0) 语文,
decode(Subject,‘数学‘,Result,0) 数学,
decode(Subject,‘英语‘,Result,0) 英语
from Results;
或
select
Name,
(case when Subject=‘语文‘ then Result else 0 end) 语文,
(case when Subject=‘数学‘ then Result else 0 end) 数学,
(case when Subject=‘英语‘ then Result else 0 end) 英语
from Results;
结果如下:
以上内容,不对的地方请指正。此文仅想抛砖引玉...
sql与oracle中有关case和decode的用法(行转列)及比较(转
标签:
本文系统来源:http://www.cnblogs.com/chuanqimessi/p/4826704.html
内容总结
以上是互联网集市为您收集整理的sql与oracle中有关case和decode的用法(行转列)及比较(转全部内容,希望文章能够帮你解决sql与oracle中有关case和decode的用法(行转列)及比较(转所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。