我需要加入一个动态的动态数据列表,我会动态从程序中检索这些数字。行数不固定,也不是使用的数字。
我没有找到一种更好的方法来实现这一点而不是以下(为了我的目的,临时表没有帮助):
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语句可以返回多行,但是我没有看到做多行和多列的方法。
答案 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 <= ...
值以获得更多行。