Oracle子查询将运行,但不会运行整个查询

Oracle子查询将运行,但不会运行整个查询,oracle,Oracle,子查询本身运行良好。但整个查询都不起作用。我得到的错误是SQL命令没有正确结束,这是无用的。我已经试过编辑它一百次了,并搜索了一些提示,但都没有找到答案 select table_name, sum(has_last_mod_time) as asdf from ( select table_name, case when lower(column_name) = 'last_modified_time' then 1 else 0 end has_las

子查询本身运行良好。但整个查询都不起作用。我得到的错误是SQL命令没有正确结束,这是无用的。我已经试过编辑它一百次了,并搜索了一些提示,但都没有找到答案

select table_name, sum(has_last_mod_time) as asdf
from 
  (
    select
      table_name,
      case when lower(column_name) = 'last_modified_time' then 1 else 0 end  has_last_mod_time
    from all_tab_columns
  ) 
group by  table_name
) as sdfsdf

Oracle不支持将AS用作表别名

从as sdfsdf中卸下as

但您的查询有更多的问题,而不仅仅是:

你也有一个太多的和小组是在错误的地方

select table_name, sum(has_last_mod_time) as asdf
from (
    select
      table_name,
      case when lower(column_name) = 'last_modified_time' then 1 else 0 end  has_last_mod_time
    from all_tab_columns
    --<< no ")" here
) sdfsdf --<< no AS here
group by  table_name --<< and the group by needs to go here

Oracle不支持将AS用作表别名

从as sdfsdf中卸下as

但您的查询有更多的问题,而不仅仅是:

你也有一个太多的和小组是在错误的地方

select table_name, sum(has_last_mod_time) as asdf
from (
    select
      table_name,
      case when lower(column_name) = 'last_modified_time' then 1 else 0 end  has_last_mod_time
    from all_tab_columns
    --<< no ")" here
) sdfsdf --<< no AS here
group by  table_name --<< and the group by needs to go here

@简单编码-1。是的,马是严肃的。2.错误消息并非毫无用处——如果你更仔细地观察它,你会发现它确切地告诉你在哪里遇到了错误,而这正是一匹马告诉你的。3.你对这个答案的评论会使人们在将来不太可能想帮助你。请记住,这是一个免费的帮助网站。如果你不相信一个答案,在你做出这样明智的评论之前先测试一下,然后在你看到它起作用后说声谢谢。@a_horse_,有_no_名字-是的,有两次,甚至两次。我刚刚在编辑窗口中键入了select*from dual作为a。即使不运行声明,在单词as后面有一条红色的波浪线表示我会遇到麻烦。然后我运行了语句,查询结果选项卡向我显示了错误消息以及错误发生的确切位置。我90%的时间使用SQL Developer,所以我知道!另外10%的时间我使用SQL*Plus,这当然会告诉你一切,我也用过一两次Toad,效果也一样。@a_horse_,没有名字-SQL开发者编辑器窗口显示或可以显示行号,并显示你在一行的位置。因此,如果错误消息在第1行第20列显示错误,即使没有视觉提示,也应该很容易找到。而且,事实上,在编辑器窗口中,错误点处也有一个小的红色波浪下划线-它就在编辑器中,更不用说错误消息了。你可以在截图中看到它!除了你选择把你的头发染成粉红色;我的是红色,是我自己选择的。@simplycoding-1。是的,马是严肃的。2.错误消息并非毫无用处——如果你更仔细地观察它,你会发现它确切地告诉你在哪里遇到了错误,而这正是一匹马告诉你的。3.你对这个答案的评论会使人们在将来不太可能想帮助你。请记住,这是一个免费的帮助网站。如果你不相信一个答案,在你做出这样明智的评论之前先测试一下,然后在你看到它起作用后说声谢谢。@a_horse_,有_no_名字-是的,有两次,甚至两次。我刚刚在编辑窗口中键入了select*from dual作为a。即使不运行声明,在单词as后面有一条红色的波浪线表示我会遇到麻烦。然后我运行了语句,查询结果选项卡向我显示了错误消息以及错误发生的确切位置。我90%的时间使用SQL Developer,所以我知道!另外10%的时间我使用SQL*Plus,这当然会告诉你一切,我也用过一两次Toad,效果也一样。@a_horse_,没有名字-SQL开发者编辑器窗口显示或可以显示行号,并显示你在一行的位置。因此,如果错误消息在第1行第20列显示错误,即使没有视觉提示,也应该很容易找到。而且,事实上,在编辑器窗口中,错误点处也有一个小的红色波浪下划线-它就在编辑器中,更不用说错误消息了。你可以在截图中看到它!除了你选择把你的头发染成粉红色;我的是红色的,是我自己选的。