现在有这个问题
查询一个表的所有数据,如果不足十行,不足的用空数据补上。
比如,查出9条数据,就要显示出这九行,外加一行补的。补的这行所有字段都为空就行
实现以上需求,一条sql语句能实现吗
查询一个表的所有数据,如果不足十行,不足的用空数据补上。
比如,查出9条数据,就要显示出这九行,外加一行补的。补的这行所有字段都为空就行
实现以上需求,一条sql语句能实现吗
解决方案 »
- 字段数据丢失
- 关于oralce创建触发器的问题。
- 关联查询的疑难求解
- 请问各位 oracle 高手一个问题:我的linux 下的 oracle 启不动了,提示错误如下:
- 怎样用C#或VB对一个远程oracle数据库进行操作?放oracle的机子是一个外地域
- 怎么把建好的数据表从家里的电脑用移动硬盘拷到的电脑上?公司是Oracle 9i企业版,家里的是从Oracle网站得下载的个人版。
- 我是新手想学习ORACLE,各位请指教!
- 如何在SQL PULS里面输出这样的表格形式呢?
- 数据库难题(出100分),请教高手!!!
- rac中某一节点asm磁盘组无法挂载
- oracle中一对多问题
- sql 子查询 用oracle函数实现,怎么做?
一条sql语句太难了。
2 PDA03116 注册兽医师 3
3 PDA03116 无定级兽医 1
4 PDA03116 中级技工 2
5 PDA03116 初级技工 1
6 PDA03117 无定级技工 2
7 PDA03117 无定级技工 7SQL:
select to_char(t01),to_char(t02),to_char(t03) from test
union all
select to_char('') t01,to_char('') t02, to_char('') t03 from test where rownum<9-rownum1 PDA03116 注册兽医师 2
2 PDA03116 注册兽医师 3
3 PDA03116 无定级兽医 1
4 PDA03116 中级技工 2
5 PDA03116 初级技工 1
6 PDA03117 无定级技工 2
7 PDA03117 无定级技工 7
8
9
10
11 8-11 都是为空的值!不知满足你要求没?
select * from (select * from 表
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual))
where rownum<10
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual)
union (select null,null,null from dual))
where rownum <=10
以前用过postgred,那里用limit 10 offset 0就可以
FROM (
SELECT ROWNUM r,a.*
FROM messages a
)a
RIGHT OUTER JOIN (
SELECT LEVEL l
FROM DUAL
CONNECT BY LEVEL <=10
)b ON b.l=a.r
例子如下:
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO
FROM (SELECT T.*, ROWNUM RN FROM SCOTT.EMP T) X,
(SELECT LEVEL L FROM DUAL CONNECT BY LEVEL <= 10) Y
WHERE X.RN(+) = Y.L;SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO
FROM (SELECT T.*, ROWNUM RN FROM SCOTT.EMP T WHERE ROWNUM < 8) X,
(SELECT LEVEL L FROM DUAL CONNECT BY LEVEL <= 10) Y
WHERE X.RN(+) = Y.L;
学习!SELECT *
FROM (SELECT T.*, ROWNUM RN FROM Test T) X,
(SELECT LEVEL L FROM DUAL CONNECT BY LEVEL <= 10) Y
WHERE X.RN(+) = Y.L;