SQL(Oracle)选择没有包含静态数据的实际表

Sau*_*uer 4 sql oracle dual-table

我正在寻找在不查询实际表的情况下运行(Oracle)SQL的可能性.在这里,我找到了DUAL表的提示.多数民众赞成.但我正在寻找一个简短的解决方案来从"无处"中选择MULTIPLE行.那可能吗?这是我能想到的最短的查询,它可以满足我的需求:

Select 1, 'foo' FROM DUAL union 
Select 2, 'bar' FROM DUAL union  
Select 3, 'more stuff' FROM DUAL
Run Code Online (Sandbox Code Playgroud)

但是如果我想在我的结果中有更多的行,那就太不方便了.有更短的方式吗?就像是

Select 1, 'foo'; 2, 'bar'; 3, 'more stuff' from dual 
or 
Select * from (1, 'foo') union (2, 'bar') union (3, 'more stuff') 
Run Code Online (Sandbox Code Playgroud)

我知道,这不起作用,但你有什么想法吗?是否有一种简单的方法来转置查询的结果?就像是:

Select transposed (1, 'foo', 2, 'bar', 3, 'more stuff') from dual 
Run Code Online (Sandbox Code Playgroud)

我希望将"开销字符"的数量保持在最低点.

小智 8

您可以使用它connect by level来生成更多记录 - 例如:

select level, decode(level, 1,'foo', 2,'bar', 3,'more stuff')
from dual connect by level <= 3
Run Code Online (Sandbox Code Playgroud)