"Oracle练习题39题及个人编码答案;交换连续学生座位号SQL查询"
需积分: 3 193 浏览量
更新于2024-03-12
收藏 139KB DOCX 举报
oracle练习题39题中包含多道题目的SQL查询练习,通过编写相应的PL/SQL语句来实现不同的功能要求。其中,题目涉及了交换学生座位号、获取员工表中第二高的薪水等内容。
首先,在交换每两个连续学生的座位号的问题上,可以通过编写SQL查询来实现。具体的实现方法包括判断学生数量的奇偶性,如果学生数量是奇数,则保持最后一个学生的id不交换;然后根据id的值进行排序,按照升序返回结果表。以下是具体的PL/SQL代码示例:
```sql
select case
when mod(id,2)=1 and id=(select count(*) from seat) then id
when mod(id,2)=1 then id+1
else id-1
end id, student
from seat
order by id ;
```
此外,还可以通过另一种方式来实现学生座位号的交换,使用rank()函数结合over子句进行排序并输出结果表。具体的代码如下:
```sql
select rank() over(order by (case when mod(id,2)=0 then id-1 else id+1 end)) id, student from seat;
```
另外,题目中还涉及了获取员工表中第二高薪水的问题。在Employee表中包含了员工的工资信息,其中id是主键。通过编写SQL查询语句,可以获取并返回Employee表中第二高的薪水,如果不存在第二高的薪水,则查询应该返回null。以下是对应的PL/SQL代码示例:
```sql
select distinct(salary) as SecondHighestSalary
from Employee
order by salary desc
limit 1 offset 1;
```
因此,以上综合了oracle练习题39题中的部分内容,通过编写不同的PL/SQL查询语句来实现学生座位号交换和获取员工表中第二高的薪水的功能。通过合理的SQL编码和逻辑处理,可以实现对数据库中数据的操作和查询需求,提高数据库管理的效率和准确性。
223 浏览量
789 浏览量
2008-06-18 上传
161 浏览量
2021-10-03 上传
2022-06-28 上传
2013-05-06 上传
独孤雨鸿
- 粉丝: 1111
- 资源: 2
最新资源
- CStrAinBP:2 个单元格串的重叠元素。 比 INTERSECT/ISMEMBER/SETDIFF 快 10-20 倍。-matlab开发
- SecKill-System:一个秒杀抢购项目:分别提供MySQL乐观锁,Redis分布锁和ZooKeeper分布锁共3种方案
- rt-thread-code-stm32f103-yf-ufun.rar,yf-ufun STM32F103 是优凡
- Gra_w_zgadywanie_liczb_2
- shuaishuai-book
- KaanBOT:KaanBOT是一款适度有趣的不和谐机器人
- ARFlower:AR花
- 建筑公司项目部施工管理制度汇编(流程图、岗位职责)
- 实现reload按钮效果源码下载
- PDFBookmark-1.0.2-final.zip
- 行间拖拽插件
- SFACC:阿西西圣法兰西斯天主教会加拉迪玛瓦网站
- CAD图块素材之电视背景墙、玄观、书柜详图
- API:GitHub上Viva Wallet开源项目的索引
- chokidar-cli:快速的跨平台cli实用程序,可监视文件系统的更改
- book_project