1 DLG060913 钢材 13
2 DLG060913 铬矿 15
3 DLG060913 硼砂 1
4 DLG060913 矿石 165
5 DLG060913 矿石 55
6 DLG060913 矿石 220 改变后: 钢材 铬矿 硼砂 矿石
DLG060913 13 15 1 165
DLG060913 55
DLG060913 220各位大侠请帮助解决!
解决方案 »
- 多表查询语句
- 急,哪为大虾帮帮忙,本人新手,用plsql删除表时没提交,现在左侧栏目里表名还在,但是对表操作时又提示表不存在,请问我该怎么彻底将它删掉
- 谁能告诉我这个式样是让我干什么?? 日语的,看不太懂
- 有没有什么可以导出数据库中所有表表结构的软件呀?
- 我也100求一条SQL语句!!!!!!!!
- 我用sql*plus开发程序,创建表和创建相应的触发器都可以在sql*plus中编写代码吗?
- 有关oracle导入导出问题
- 恢复目录是否可以建立在目标数据库中
- 怎么些这样的sql语句
- 同义词的问题
- 求救:一个字段值当为条件的一对多表查询的SQL写法
- 谁能给我几个php调用oracle的例子,最好是调用存储过程的
表转换为横表的情况,如:课程表的显示方式,部门平均工资的排名等情况。下面将将根据
两个实例子的需求描述给出两种常见的竖表转横表的解决办法(本例中的数据意思是:一、
二、三年级的各科目最高分统计)。 表结构: create table test_table
(
grade_id number(8), --年级:1、一年级,2、二年级,3、三年级
subject_name varchar2(30), --科目:包含语文、数学、外语、政治等科目
max_score number(8) --最高分
)
表中数据: SQL> select * from test_table; GRADE_ID SUBJECT_NAME MAX_SCORE 1 语文 95
1 数学 98 2 语文 86 2 数学 90 2 政治 87 3 语文 93 3 数学 88 3 英语 88 3 政治 97 9 rows selected. 需求描述:要求将表中的年级、科目及最高的信息按照下表的格式显示,如果该年级没开
的课程,则其最高分用0表示: 年级 语文 数学 英语 政治 一年级 95 98 0 0 二年级 86 90 0 87 三年级 93 88 88 97 分析:该需求将年级的分数及科目信息由纵向转为横向,这样就要针对每个年级的,对
其科目进行判断,存在科目则显示科目的最高分,如果不存在显示0。这时候就考虑到使用
decode函数来解决。实现如下: select
decode(t.grade_id,1,'一年级',2,'二年级',3,'三年级') 年级,
sum(decode(t.subject_name,’语文’,t.max_score,0)) 语文,
sum(decode(t.subject_name,'数学',t.max_score,0)) 数学,
sum(decode(t.subject_name,'英语',t.max_score,0)) 英语,
sum(decode(t.subject_name,'政治',t.max_score,0)) 政治
from
test_table t
group by
t.grade_id