在 SQL Server 中,可以在不引用表的情况下执行 SELECT 语句,使用如下语法:
Select 1.2 +3, 'my dummy string'
但是,Oracle 不允许没有 FROM 子句的 SELECT 语句。要在 Oracle 中执行此类查询,经常使用双表:
Select 1,2+3, 'my dummy string' FROM DUAL
这就引出了一个问题:在 Oracle 中是否有更好的方法来执行此类查询?让我们探索答案。
不,Oracle 不允许不带 FROM 子句的 SELECT 语句。使用 Dual 表被认为是一种很好的做法。
Dual 是一种内存表,可提供快速访问路径,无需 I/O 要求。最初,它包含两条记录,用于复制 JOIN 操作的记录。如今,它只有一条记录,但仍然可以使用 CONNECT BY 子句生成任意数量的行:
SELECT level FROM dual CONNECT BY level <= 100
其他数据库(例如 MySQL)也支持双表和fromless 语法。 MySQL 的语法与 SQL Server 类似:
Select 1.2 +3, 'my dummy string'
以上是对于没有 FROM 子句的 SELECT 语句,在 Oracle 中使用 DUAL 表是否有更好的替代方案?的详细内容。更多信息请关注PHP中文网其他相关文章!