oracle驻场运维面试题,Oracle的四道经典面试题分享

本文整理了4道Oracle经典面试题,包括根据数据生成特定查询结果、统计胜负能力、学生分数汇总及部门业绩展示。通过案例详细解释了解题思路和SQL解决方案。
摘要由CSDN通过智能技术生成

前言

本文整理了4道Oracle 经典面试题,与大家分享学习。这也许是你一直期待的文章,下面话不多说了,来一起看看详细的介绍吧

第一题

create table test(

id number(10) primary key,

type number(10) ,

t_id number(10),

value varchar2(6)

);

insert into test values(100,1,1,'张三');

insert into test values(200,2,1,'男');

insert into test values(300,3,1,'50');

insert into test values(101,1,2,'刘二');

insert into test values(201,2,2,'男');

insert into test values(301,3,2,'30');

insert into test values(102,1,3,'刘三');

insert into test values(202,2,3,'女');

insert into test values(302,3,3,'10');

select * from test;

代码生成表格如:

e3d4ed46eae46d0912c01161d608eaf9.png

根据以上代码生成的表写出一条查询语句,查询结果如下:

姓名

性别

年龄

张三

50

刘二

30

刘三

10

/*

根据表格可以分析出type列中1代表姓名、2代表性别、3代表年龄,而t_id中id一样的为同一个人的属性

查询结果中列依次为姓名、性别、年龄,而type列决定姓名、性别、年龄

*/

/*使用分组,先对t_id进行分组,然后用decode函数过滤数据,例:decode(type, 1, value) type=1就显示为value

由于分组后select后面的列字段只能是分组的字段或者组函数,所有使用max()。

同一个人的type没有重复数值所以 decode(type, 1, value)返回的值只有一个,最大值也就是这个值

*/

select max(decode(type, 1, value)) "姓名",

max(decode(type, 2, value)) "性别",

max(decode(type, 3, value)) "年龄"

from test

group by t_id;

/*使用连表,通过where过滤生成3张type分别等于1(姓名)、2(性别)、3(年龄)的3张虚拟表 如:

再通过where 连接条件 三张表t_id相等的为同一个人或者说同一条记录(行)

*/

select t1.value "姓名",t2.value "性别",t3.value "年龄" from

(select value,t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值