Oracle db中的相应查询是什么

时间:2016-12-02 10:32:38

标签: sql oracle

我有以下查询在postgresql中完美运行:

Select 'Tom' as name
输出为:

name
Tom

Oracle中相应的查询应该是什么?

如果我在Oracle中运行查询,则会出错,但在postgresql中运行成功。

3 个答案:

答案 0 :(得分:3)

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

SELECT 'Tom' as name FROM dual

答案 1 :(得分:2)

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

select 'Tom' as name from dual;

答案 2 :(得分:2)

甲骨文(afaik)在其他RMDBS中并不常见,因为它强制要求如果您选择了某些内容,则必须从表格中选择它。

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

我说"特别"因为,自10g以来,优化器认识到它与其他表不同,因此可以在生成执行路径时使用该信息,使其比使用" normal"一列,一行表。