Sql Oracle数据库中的相应查询是什么

Sql Oracle数据库中的相应查询是什么,sql,oracle,Sql,Oracle,我有一个在postgresql中非常有效的查询: Select 'Tom' as name 输出为: name Tom Oracle中对应的查询应该是什么 如果我在Oracle中运行查询,它会给出一个错误,但在postgresql中成功运行。Oracle不允许没有from子句的查询。对于此类查询,Oracle提供了一个名为dual的系统表,其中包含一列和一行: SELECT 'Tom' as name FROM dual Oracle需要from子句。在这种情况下,您必须使用双表 sele

我有一个在postgresql中非常有效的查询:

Select 'Tom' as name
输出为:

name
Tom
Oracle中对应的查询应该是什么


如果我在Oracle中运行查询,它会给出一个错误,但在postgresql中成功运行。

Oracle不允许没有from子句的查询。对于此类查询,Oracle提供了一个名为dual的系统表,其中包含一列和一行:

SELECT 'Tom' as name FROM dual

Oracle需要from子句。在这种情况下,您必须使用双表

select 'Tom' as name from dual;

Oracle在其他RMDB中很不寻常,因为它强制要求,如果要选择某个对象,必须从表中选择该对象

为此目的,有必要采取行动。它是一个特殊的单行单列表,允许您在SQL中选择常量、函数等,而不必编写PL/SQL过程


我之所以说特别是因为,自10g以来,优化器认识到它与其他表不同,因此在生成执行路径时可以利用这些信息,使其比使用普通的一列一行表更有效。

您需要从表中进行选择。请尝试从dual中选择“Tom”作为名称。@jarlh感谢它可以工作。此处的Oracle行为实际上符合ANSI SQL。根据SQL标准,FROM子句是必需的。@jarlh我不完全确定这一点;我想我在某个时候读过它们,它们迎合了这样一个事实:当选择一个常数时,你不需要FROM子句。然而,我在网上找不到一份标准的副本,我可以用它来确认这是真是假!您可以在这里验证ISO/ANSI SQL语法遵从性:Oracle并不是那么不寻常。DB2、Informix、SAP HANA、Firebird、HSQLDB、ApacheDerby也需要从clause@a_horse_with_no_name看,我就知道别人会知道得更清楚!可能那些有可选from子句的是不寻常的*{;-