oracle中写子查询中用到外部表别名报错00979。

在写一段关于统计的sql时,使用了行政区划进行分组,之后因为需求需要截取区划代码前几位进行分组,改过之后原sql语句中子查询部分报错00979

语句如下:

select
     rpad(substr(area_code,0,6),11,'0') as area_code,
     (select count(1) from 
         (select p_code from temp where 
            rpad(substr(area_code,0,6),11,'0') = 
            rpad(substr(top.area_code,0,6),11,'0')
          ) as count_num
from temp top
group by rpad(substr(area_code,0,6),11,'0')

原语句中没有使用截取和拼接函数,子查询中使用外部表别名不会报错,
改过之后将子查询的where条件等式右边改成固定字符串也不会报错。
所以我暂时觉得问题出在等式右边,但实在不知道是什么原因,希望有大神可以解惑

阅读 2.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题