原始查询结果如下
市 区 编号 姓名 年龄
A B 1 王XX 26
A B 2 李XX 33
A B 3 赵XX 12
A c 1 李XX 36
...
D F G 李XX 44
想利用cross join 和 rownum 输出如下结果(假定最多4个编号固定 不满4个输出null)
市 区 编号 姓名 年龄
A B 1 王XX 26
A B 2 李XX 33
A B 3 赵XX 12
A B 4 null null
A c 1 李XX 36
A c 2 null null
A c 3 null null
A c 4 null null
...
D F G 李XX 44有没有最简洁的方法写上面的语句 谢谢大家
市 区 编号 姓名 年龄
A B 1 王XX 26
A B 2 李XX 33
A B 3 赵XX 12
A c 1 李XX 36
...
D F G 李XX 44
想利用cross join 和 rownum 输出如下结果(假定最多4个编号固定 不满4个输出null)
市 区 编号 姓名 年龄
A B 1 王XX 26
A B 2 李XX 33
A B 3 赵XX 12
A B 4 null null
A c 1 李XX 36
A c 2 null null
A c 3 null null
A c 4 null null
...
D F G 李XX 44有没有最简洁的方法写上面的语句 谢谢大家
最后一条D F G 怎么理解?
(select distinct t1.市, t1.区, v1.编号 from 原表 t1,
(select 1 编号 from dual
union all
select 2 编号 from dual
union all
select 3 编号 from dual
union all
select 4 编号 from dual
) v1
) v2, 原表 t
where v2.市=t.市(+) and v2.区=t.区(+) and v2.编号=t.编号(+)
order by ...
A B C D
-------
a b 1 1
a b 1 2
a b 1 3
a b 2 1
a b 2 2
...
a c 1 1
a c 1 2
a c 1 3
a c 2 1
...select distinct A , B , D from table
能得到
a b 1
a b 2
a b 3
a c 1
a c 2
a c 3
是吗?
可以得到的,我在oracle 10g下面试过。