日期:2014-05-16  浏览次数:21149 次

三个想通过oracle(plsql)实现的查询
1. 假设通过下面的查询
select vol from table A where ss='5';
可以查询到6条记录,假设为,我想将这一列错位排列一下,后一列i行的值等于前一列i-1行的值,
1
2
3
4
5
6
例如我想错位出3列,则新的组成的列为,最多只能为4行,怎样写出来?
1 2 3
2 3 4
3 4 5
4 5 6

2.在plsql的过程中,使用两个游标,分别查到两列一样长得数值,怎样求他们之间的协方差?

3.怎样使过程插入到一个表中,表中有些列可为空,每次插入的时候不知道这个插入值的长度。例如一个表有4列,
除了第一列外都为空,在插入的时候,有可能只有前两列的值,或者只有前三列的值,怎样使用insert into table values(。。。)插入。

谢谢,问题好多,实在没分了,给我点想法,让我再去查询也可以。

------解决方案--------------------
SQL code
SELECT * FROM 
(SELECT ROWNUM  rn FROM dual CONNECT BY ROWNUM BETWEEN 1 AND 4 ) A,
(SELECT ROWNUM  rm FROM dual CONNECT BY ROWNUM BETWEEN 1 AND 5 ) B,
(SELECT ROWNUM  rq FROM dual CONNECT BY ROWNUM BETWEEN 1 AND 6 ) C
WHERE a.rn=b.rm-1 AND a.rn=c.rq-2

--modify