oracle 数据库开发面试题,当时笔试的时候一个没做出来,现附原题及答案
2024-09-01 20:05:46
1、
ID
1
2
3
5
6
7
8
10
11
12
15
表名tt,用sql找出ID列中不连续的ID,例如其中没有的4:
--创建表及数据
CREATE TABLE tt(ID INTEGER); INSERT INTO tt
SELECT 1 FROM dual
UNION ALL
SELECT 2 FROM dual
UNION ALL
SELECT 3 FROM dual
UNION ALL
SELECT 5 FROM dual
UNION ALL
SELECT 6 FROM dual
UNION ALL
SELECT 7 FROM dual
UNION ALL
SELECT 8 FROM dual
UNION ALL
SELECT 10 FROM dual
UNION ALL
SELECT 11 FROM dual
UNION ALL
SELECT 12 FROM dual
UNION ALL
SELECT 15 FROM dual;
COMMIT;
--用到了connect by level 造数据
WITH IT AS
(SELECT LEVEL ID FROM DUAL CONNECT BY LEVEL <= (SELECT MAX(ID) FROM TT))
SELECT A.ID
FROM IT A
WHERE NOT EXISTS (SELECT 1 FROM TT B WHERE A.ID = B.ID)
2、
将录入不规范的房间信息整理成规范格式
不规范表(多个房间用逗号分割)
ID | ROOM |
1 | 101,102 |
2 | 201,202,203 |
3 | 301 |
....... |
规范表
ID | ROOM |
1 | 101 |
1 | 102 |
2 | 201 |
2 | 202 |
2 | 203 |
3 | 301 |
...... |
--单行单列转多行
--创建表及数据
create table ttt(id integer,room varchar2(200)); insert into ttt
select 1,'101,102' from dual
union all
select 2,'201,202,203' from dual
union all
select 3,'' from dual;
commit;
SELECT DISTINCT ID,REGEXP_SUBSTR(room, '[^,]+', 1, LEVEL, 'i') AS STR
FROM ttt
CONNECT BY LEVEL <= LENGTH(room) - LENGTH(REGEXP_REPLACE(room, ',', ''))+1;
最新文章
- Ubuntu 15.1 unity在顶部面板显示系统CPU/内存/网络速度
- Resource governor2:Configuration query
- [Java] 特殊正则-替换字符串
- latex学习--基础知识
- PHPWind 8.7中代码结构与程序执行顺序
- [Objective-c 基础 - 3.3] @property属性详解
- Ubuntu14.04服务器安装ftp
- Mysql 忘密码 + Phpadmin 修改密码无法登陆
- Nhibernate分页测试续
- LAMP环境的搭建(四)----Apache下部署项目
- 小强的HTML5移动开发之路(18)——HTML5地理定位
- webbug3.0靶场第二关
- MapReduce作业的工作原理
- oracle 自定义比较函数
- eclipse复制工作空间配置
- GO语言的进阶之路-Golang字符串处理以及文件操作
- ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据
- Retrieve id of record just inserted into a Java DB (Derby) database
- iphone上点击div会出现半透明灰色背景以及margin失效
- 运行官方mysql 镜像