我有一个具有单列flat_no
的表flats
,
table flats
flat_no
101
102
103
104
105
.
.
. so on
200
在上表中,我有flat_no 101至200,所以在这里我只想将flat_no
列值分为2个部分,然后以2列显示。
我需要预期的输出
c1 c2
101 151
102 152
103 153
. .
. .
. so on . so on
150 200
我已经写了一个查询来实现这种情况,但无法获得确切的输出
select rownum, (case when rownum<=50 then flat_no else 0 end) c1,
(case when rownum >50 then flat_no else 0 end) c2 from flats
通常是这样完成的,就像这样做:
select * from flats f1 join flats f2 on f1.flat_no + 50 = f2.flat_no;
在您的情况下,您只需加入即可将50添加到同一列中:
select flat_no, flat_no + 50 from flats where flat_no <= 150;