mysql - 在不指定表的情况下执行语句

标签 mysql oracle

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/

相关文章:

mysql - 如何从mysql获取更新和插入的行数

mysql - 如何从本地主机Windows(192.168)连接docker子网(172.18)中的mysql?

php - Where Like 语句选择具有特定标签的记录

oracle - PL/SQL 评估顺序

sql-server - 通过 WAN 打开大文件的好方法是什么?

mysql - sql 列十进制 20,6 格式删除 zerofill

php - Kendo 自动完成功能不起作用

java - 如何找到 Oracle 数据库的 URL?

oracle - 设置 Oracle Apex session 超时

oracle - Oracle 查询中 SAS 宏日期的正确语法