📜  SQL中的DUAL表

📅  最后修改于: 2021-08-27 07:25:28             🧑  作者: Mango

在某些情况下,我们可能要查询不是来自表的内容。例如,获取当前日期或查询诸如2 + 2之类的简单算术表达式。

在Oracle中,子句FROM不是例外。如果我们不在Oracle中编写FROM子句,则会收到错误消息。

示例1:Oracle查询

SELECT SYSDATE;

输出 –

ORA-00923: FROM keyword not found where expected

示例2:Oracle查询

SELECT 'GeeksforGeeks';

输出 –

ORA-00923: FROM keyword not found where expected

双 :
它是由Oracle数据库自动创建的表以及数据字典。 DUAL在用户SYS的架构中,但所有用户均可通过名称DUAL进行访问。它具有一列DUMMY,定义为VARCHAR2(1),并且包含一行值为X的行。

示例:Oracle查询

SELECT * 
FROM DUAL ;

输出 –

X 

从DUAL表中进行选择对于使用SELECT语句计算常量表达式很有用。由于DUAL只有一行,因此该常数仅返回一次。

Oracle查询:

SELECT 'GeeksforGeeks' 
AS NAME FROM DUAL;

输出 –

GeeksforGeeks 

Oracle查询:

SELECT 2+2 
FROM DUAL;

输出 :

2+2 = 4 

其他几个数据库,包括MS SQL Server,MySQL,PostgreSQL和SQLite,都可以省略FROM子句。此异常是其他数据库中没有像DUAL这样的虚拟表的原因。