我的表格中有offset
和qty
列。
我现在想要创建一个视图,其中包含每个精确position
的条目。
offset | qty | more_data
-------+---------+-------------
1 | 3 | 'qwer'
2 | 2 | 'asdf'
position | more_data
---------+------------
1 | 'quer'
2 | 'quer'
3 | 'quer'
2 | 'asdf'
3 | 'asdf'
这甚至可能吗?
我需要为Oracle(8! - 11),MS SQL(2005-)和PostgreSQL(8 - )
做到这一点答案 0 :(得分:1)
根据您的输入/输出:
with t(offset, qty) as (
select 1, 3 from dual
)
select offset + level - 1 position
from t
connect by rownum <= qty
POSITION
--------
1
2
3
答案 1 :(得分:1)
在Oracle中,回答具体问题(即只有一行的表):
select rn posn from (
select offset-1+rownum rn from the_table
connect by level between offset and qty
);
实际上,您的表将有多行,因此您需要将内部查询限制为1个对象行,否则我认为您将获得巨大的错误输出。如果您可以提供有关表格/数据的更多详细信息,则可以给出更完整的答案。
答案 2 :(得分:1)
对于Postgres:
select offst, generate_series(offst, qty) as position
from the_table
order by offst, num;
SQLFiddle:http://sqlfiddle.com/#!10/e70d9/4
我没有像8.0,8.1或8.2那样古老的东西,但它也应该适用于那些史前版本。
请注意,offset
是Postgres中的保留字。您应该为该列找到不同的名称