我有一个表flats
,其中包含单个列flat_no
,其值为
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
答案 0 :(得分:0)
通常这样的事情是通过自我联接完成的:
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;