我需要加入从我的程序中动态检索的数字的动态列表。行数不是固定的,使用的数字也不是固定的。
我找不到比以下方法更好的方法来实现这一点(就我的目的而言,临时表没有帮助):
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条答案
按热度按时间jhdbpxl91#
您可以使用解码并按级别连接:
6yjfywim2#
您可以在这里使用
CONNECT BY
,但需要做一些数学运算:这将为您提供三行的示例。调整
LEVEL <= ...
值以获得更多行。更新2022:我看到OP在我回答问题的第二天编辑了问题,使其无效。
B.Khan一年后的回答更有针对性,尽管老实说我更喜欢
CASE
而不是DECODE
--DECODE
更紧凑,但IMOCASE
更具可读性。在这里,我也更喜欢LEVEL
而不是ROWNUM
,因为ROWNUM
并不总是以人们预期的方式工作。