关于Oracle的语句执行顺序
来源:互联网 发布:牧在线网络汉语汉字典 编辑:程序博客网 时间:2024/06/18 09:37
今天小菜鸟敲代码碰到很有意思的事情,代码如下:
select sum(a),case when t.item.id IN(03,04)THEN '08'ELSE t.item_id ENDfrom tab twhere t.item_id IN(03,04)and t.as_of_date=date'2017-02-28'and t.ISO_CURRENCY_CD='ZHRMB'group by item_id
结果当然是出现了两条数据,字段a并没有被sum,下面是正确的代码
select sum(a),item_codefrom (select t.*,case when t.item.id IN(03,04)THEN '08'ELSE t.item_id END item_codefrom tab where t.item_id IN(03,04)and t.as_of_date=date'2017-02-28'and t.ISO_CURRENCY_CD='ZHRMB')t1group by item_code
原因是oracle在执行这条语句的时候,先执行了from后面的子查询,然后把返回的结果集插入到查询中。一般来说Oracle执行sql语句,有如下优先顺序:1、from子查询 2、where子句 3、group by分组 4、having进行筛选 5、表达式计算 6、返回来执行select查询 7、将查询结果用order by排序
点击打开传送门(出此原文)
阅读全文
0 0
- 关于Oracle的语句执行顺序
- Oracle 语句的执行顺序
- oracle语句执行顺序
- oracle 语句执行顺序
- oracle语句执行顺序
- 举例证明Oracle语句的执行顺序
- 关于sql语句的执行顺序问题
- Oracle sql语句执行顺序
- oracle sql语句执行顺序
- Oracle sql语句执行顺序
- Oracle sql语句执行顺序
- Oracle sql语句执行顺序
- Oracle Select语句执行顺序
- Oracle sql语句执行顺序
- Oracle sql语句执行顺序
- Oracle sql语句执行顺序
- Oracle SQL语句执行顺序
- oracle sql语句执行顺序
- python统计代码行数
- Sping框架总结(核心原理+基础入门)
- Volley源码分析(三)
- bzoj4029 [HEOI2015]定价
- .NET Framework版本历史
- 关于Oracle的语句执行顺序
- bugku 字符?正则?
- Linux下安装多个tomcat
- 深度学习收费视频
- 4、三色棋(Algorithm Gossip)
- 20170828_windows10+openCV3.3+tensorflow1.3gpu版本+python3.6+cuda8.0+cudnn6
- 大数加法 + 斐波那契数列
- 学习日记2017.8.28(万事开头难)
- c++ 11 final, override,const 成员函数