Oracle从具有多个行和列的双重选择

时间:2015-01-28 21:35:22

标签: oracle dual-table

我需要加入一个动态的动态数据列表,我会动态从程序中检索这些数字。行数不固定,也不是使用的数字。

我没有找到一种更好的方法来实现这一点而不是以下(为了我的目的,临时表没有帮助):

select 111 as col1, 322 as col2 from dual
union all
select 3 as col1, 14 as col2 from dual
union all
select 56 as col1, 676 as col2 from dual;

有更好的方法吗?我看到有一个connect by语句可以返回多行,但是我没有看到做多行和多列的方法。

2 个答案:

答案 0 :(得分:3)

您可以按级别使用解码和连接:

select decode(rownum, 1, 111, 2, 3, 3, 56) as col1,
       decode(rownum, 1, 322, 2, 14, 3, 676) as col2
  from dual
connect by level <= 3;

答案 1 :(得分:2)

您可以在这里使用CONNECT BY进行一些数学运算:

SELECT Level * 2 - 1 AS col1, Level * 2 AS col2
FROM DUAL
CONNECT BY LEVEL <= 3;

这将为您提供三行示例。调整LEVEL <= ...值以获得更多行。