select 2 + 2
是一个有效的 mysql 语句,但在 oracle 中我必须提供一个表名 select 2 + 2 from foo
(或 dual
表)。有没有办法不设置 from
语句?我想知道为什么它在 Oracle 中不是可选的。当它可以像其他 RDBM 一样可选时,提供一个假表听起来很虚。
最佳答案
你必须从一些东西中选择;在 Oracle 中,它是 DUAL
表:
SQL> select 3 + 6 from dual;
3+6
----------
9
它是一个 SYS
拥有的表并且包含一行:
SQL> select * From dual;
DUMMY
--------------------
X
因此,它对此类事情很有用(需要获取单行的地方)。
如果 foo 也包含一行,那么您的表达方式(select ... from foo
)是可以的。但是,如果没有呢?看一下:dept
表中有 4 个部门:
SQL> select 3 + 6 from dept;
3+6
----------
9
9
9
9
所以 - 使用DUAL
:)
关于mysql - 在不指定表的情况下执行语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51490716/