欣欣向荣888 2022-11-17 09:38 采纳率: 60%
浏览 27
已结题

在oracle里where 后的优先级是怎么样的?

问题遇到的现象和发生背景

在oracle里where 后的优先级是怎么样的?

用代码块功能插入代码,请勿粘贴截图

select * from t_table_a a
where (a.dw is null or a.dw='88888')
and (a.bj isnull or a.bj='9999')

运行结果及报错内容

我想要的是先查出学院为 ‘8888’或者学院为空的数据再在这些数据中找班级为 ‘99999’ 或者班级为空的数据。请问各位我这个写法是否有错??性能可以怎么提升 。谢谢(谢谢各位指正,已经改正表别名错误)

  • 写回答

10条回答 默认 最新

  • 一把编程的菜刀 2022-11-17 09:55
    关注
    select * from t_table_a
    where (a.dw is null or a.dw='88888')
    and (a.bj isnull or a.bj='9999')
    

    这个语句中,t_table_a 这个是表名,还是你想把t_table 设置别名 a,如果是后后者应该是

     select * from  t_table  a
    where (a.dw is null or a.dw='88888')
    and (a.bj isnull or a.bj='9999')
    

    否则你们后用 a.dw 是会报错的,因为你没有表a 或者别名为 a的表

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日
  • 修改了问题 11月17日
  • 赞助了问题酬金15元 11月17日
  • 展开全部