【问题标题】:ORA-00907: missing right parenthesis when creating a tableORA-00907: 创建表时缺少右括号
【发布时间】:2018-04-27 22:29:49
【问题描述】:

我的以下查询可以正常工作并产生正确的结果

select id, sum(item_stock)
from seller
group by id
order by id ASC;

当我尝试使用上面这样的查询创建表时

CREATE TABLE total_stock
AS (
select id, sum(item_stock)
from seller
group by id
order by id ASC );

我收到以下错误

SQL 错误:ORA-00907:缺少右括号

任何关于为什么这不起作用的帮助将不胜感激

【问题讨论】:

    标签: oracle ddl


    【解决方案1】:

    您的问题是由 ORDER BY 子句引起的。

    你必须:

    1. 为“sum”字段添加别名
    2. 创建另一个子查询以“删除”ORDER BY 子句
    CREATE TABLE total_stock
    AS (
        select id, item_stock
        from (
             select id, sum(item_stock) as item_stock
             from seller
             group by id
             order by id ASC 
             )
    )
    

    【讨论】:

    • 不相关,但是:外部选择周围的括号(AS 之后)是无用的 - 而且您根本不需要派生表(内部选择)。并且order by 是无用的,并且表格开始时没有顺序。声明可以简化为CREATE TABLE total_stock AS select id, sum(item_stock) as item_stock from seller group by id;
    猜你喜欢
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 2018-05-23
    • 2018-12-06
    • 1970-01-01
    相关资源
    最近更新 更多