Oracle查询语句的奇怪问题

Slumber 2008-04-02 12:01:33
今天遇到一个很奇怪的SQL问题:
有一段查询语句a,单独执行a没有问题,但 select t.* from (a) as t 就会报“无效数字”(别名t未在a中使用),不知道是什么原因。难道是Oracle的BUG?Oracle版本是9i
...全文
65 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
关注 接分
ruihuahan 2008-04-04
  • 打赏
  • 举报
回复
是不是在 a 中的某个别名(列别名、表别名)也使用了 t?
Slumber 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 airson79 的回复:]
1楼正解,执行a的时候只返回了一部分数据,这部分数据恰好不包含非法数据,但执行select t.* from (a) as t的时候要先把a的数据全部先取出来,所以就有问题了
[/Quote]

执行a后只有一条记录
Slumber 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 AmberLee 的回复:]
select t.* from (a) as t 要取出满足a的所有数据,可能里面的数据有问题。
[/Quote]

什么意思?a都能正常执行并得到结果的
Slumber 2008-04-02
  • 打赏
  • 举报
回复
修正一下,是select t.* from (a) t
许毕峰 2008-04-02
  • 打赏
  • 举报
回复
1楼正解,执行a的时候只返回了一部分数据,这部分数据恰好不包含非法数据,但执行select t.* from (a) as t的时候要先把a的数据全部先取出来,所以就有问题了
AmberLee 2008-04-02
  • 打赏
  • 举报
回复
select t.* from (a) as t 要取出满足a的所有数据,可能里面的数据有问题。
wffffc 2008-04-02
  • 打赏
  • 举报
回复
写全了看看,这样看好像是没有问题的

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧