在中,SQL Server 可以执行SELECT,而无需引用表;就像是:
Select 1.2 +3, 'my dummy string'
由于,Oracle 不允许在没有FROM的情况下进行SELECT,因此我将对偶表用于这种类型的操作。就像是:
Select 1,2+3, 'my dummy string' FROM DUAL
有没有更好的方法来执行这种类型的查询?使用双表是一种好习惯?
最佳答案
不,在Oracle
中,没有SELECT
的情况下没有FROM
。
使用dual
表是一个好习惯。dual
是一个内存表。如果您没有从中选择DUMMY
,它将使用特殊的访问路径(FAST DUAL
),不需要I/O
。
曾几何时,dual
有两个记录(因此而得名),其目的是用作虚拟记录集以复制与之连接的重复记录。
现在它只有一条记录,但是您仍然可以用它生成任意数量的行:
SELECT level
FROM dual
CONNECT BY
level <= 100
MySQL
还支持dual
(以及fromless语法)。