一张表里有记录,其中有一个字段是编号,是人工输入的,比如1001,1002,1003,1004,但是可能有些不连续,比如1004后面是1006,1005没有输入,现在要做一个查询,不但要查询出这个表里所有记录,而且那些编号没有的比如1005也要显示在查询结果里,只是其他字段都为空,用一个select语句能查出来么?
解决方案 »
- 请教:在一个存储过程可否引用函数的返回游标,并循环取值
- 如何设置在Linux启动后,Oracle也启动,监听也启动?
- 【挑战】标准SQL查找出第N条记录!
- 请教一条oracle 的sql语句
- 存储过程里commit的问题
- ORACLE中的模糊查询问题。
- exp出表A,如何imp进这个dmp数据到另一张相同表结构B中呀?
- 紧急求助:本人给一个公司做了个网站,用JSP ORACLE SERVERLET 技术,但做完后发现网上没有可以支持上传的空间,几
- 有关DBLINK的问题
- 请问能否将一个数据库里面的一个表空间(所在2000系统已经坏了)文件拷贝到另一部机的ORACLE上继续能用?
- 这样写SQL语句查找每个公司的最新的更新时间
- 执行存储过程错误:ORA-01460: 转换请求无法实施或不合理
select 1001 id, 'kyte' name from dual union all
select 1002 id, 'byte' name from dual union all
select 1003 id, 'cyte' name from dual union all
select 1005 id, 'fyte' name from dual union all
select 1007 id, 'eyte' name from dual)
SELECT a.id, b.name
FROM (SELECT (SELECT MIN(id) FROM tt) + LEVEL - 1 id
FROM dual
CONNECT BY LEVEL <= (SELECT MAX(id) - MIN(id) + 1 FROM tt)) a,
tt b
WHERE a.id = b.id(+)
ORDER BY a.id;
如果你自己建表,你可以将表名和字段替换成自己的,使用select部分就行了
SELECT a.id, b.name
FROM (SELECT (SELECT MIN(id) FROM tt) + LEVEL - 1 id
FROM dual
CONNECT BY LEVEL <= (SELECT MAX(id) - MIN(id) + 1 FROM tt)) a,
tt b
WHERE a.id = b.id(+)
ORDER BY a.id;