Oracle中SQL语句使用别名是是一件十分常见的事。如:
SQL> select ename,sal as salary from emp where sal<1000;
ENAME          SALARY
---------- ----------
SMITH             800
JAMES             950
但是,想在where后面使用上别名就会,报错了,如
SQL> select ename,sal as salary from emp where salary<1000;
select ename,sal as salary from emp where salary<1000
*
ERROR at line 1:
ORA-00904: "SALARY": invalid identifier
为什么会这样呢?
因为where后面的语句比select后面部分的先执行,也就是说这个SQL语句是先执行salary<1000,再执行sal as salary。所以之前Oracle根本识别不了salary。
解决方法
通过内联视图就可以解决了
SQL> select * from (select ename,sal as salary from emp) where salary<1000;
ENAME          SALARY
---------- ----------
SMITH             800
JAMES             950
因为内联视图是先比salary<1000这部分执行的。
这个技巧也可以用在聚合函数,视窗函数,标量子查询中.
没意识到这种错误是因为对SQL语句各个部分的执行顺序分不清楚。
所以,这里附上 SQL语句执行时候,各部分执行的先后顺序
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。
8、select 集合输出。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31386161/viewspace-2134749/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31386161/viewspace-2134749/

where后面使用别名相关推荐

  1. Go 知识点(05)— 类型别名与类型定义

    1. 类型别名 类型别名需要在别名和原类型之间加上赋值符号 = ,使用类型别名定义的类型与原类型等价,Go 语言内建的基本类型中就存在两个别名类型. byte 是 uint8 的别名类型: rune ...

  2. Go 学习笔记(32)— 类型系统(命名类型、未命名类型、底层类型、类型强制转换、类型别名和新声明类型)

    1. 命名类型和未命名类型 1.1 命名类型 类型可以通过标识符来表示,这种类型称为命名类型( Named Type ). Go 语言的基本类型中有 20 个预声明简单类型都是命名类型, Go 语言还 ...

  3. Go 学习笔记(27)— type 关键字(类型定义、类型别名、类型查询、定义接口、定义结构体)

    1. 类型别名定义 定义类型别名的写法为: type TypeAlias = Type 类型别名规定: TypeAlias 只是 Type 的别名,本质上 TypeAlias 与 Type 是同一个类 ...

  4. MySQL数据库表名、列名、别名区分大小写的问题

    MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小写的: 3.列名与列的别名在所有的情况下均是忽略大小写的: 4 ...

  5. linux 脚本 alias,在shell脚本中使用alias别名

    本文最后更新于2015年7月12日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢! 缘由: 经常用Linux进行操作的同学一般都会有各种各样的技巧来提升工作效率,而添加/改写shell ...

  6. Mysql提示缺少表的别名报错_mysql对sql中别名引起的Column not found问题

    Caused by: java.sql.SQLException: Column 'BTN_ICON' not found. 报错信息是找不到表中的某字段,但是表里确确实实有这个字段. 这个问题,在百 ...

  7. android 创建资源别名,android – 将具有相同名称的布局资源别名化为不同的屏幕限定符...

    我正在和我一起战斗!同样的问题,终于找到了解决方案,所以即使问题很老,也许有人觉得它很有用 >将肖像布局放入/res/layout/abc.xml(你已经拥有它) >将横向布局放入/res ...

  8. c++11 之模板定义别名(using)

    C++11标准中可以为模板定义别名,比如 template<typename T> using ptr=std::shared_ptr<T>; //这里模板定义ptr<T ...

  9. 为方便ATS管理建立的一些命令别名

    转载自https://blog.zymlinux.net/index.php/archives/129 玩ats经常需要切换目录什么感觉敲得麻烦了就建立了一些命令别名,就方便多了. 在用户目录下的.b ...

  10. ffmpeg录屏/摄像头/指定窗口;别名alias设置

    关于ffmpeg的使用方法很多,我简单写一下今天我捣鼓的几个.因为我的项目中要用到录屏和录制摄像头,所以试了下.网上关于录制指定窗口的方法并不多,我也是找了好久,试了好久才试出来的. 好了,废话不多说 ...

最新文章

  1. 5G/4G:子载波间隔和采样时长
  2. 洛谷 [P2590] 树的统计
  3. java架构师学习笔记
  4. 判断图有无环_判断无向图/有向图中是否存在环
  5. 利用Theme自定义Activity进入退出动画
  6. Android之Canvas的drawRoundRect()
  7. python设置字符间距_python字符串处理以及字符串格式化
  8. Nagios+zabbix+ganglia的相关参数分析和优缺点介绍
  9. delphi 通讯数据解析_网络工程师-ARP是如何解析?
  10. WCF BasicHttpBinding 安全解析(1)BasicHttpBinding基本配置
  11. 配置多个ssh-key
  12. 电影海报的字体如何设计?——黎乙丙
  13. java watir_watir webdriver 安装
  14. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON2 LED灯闪烁
  15. 基于OpenSSL,实现C语言SM2的PKCS10的证书请求
  16. 多点多地网络改造方案
  17. echarts树图图标修改成图片以及自定义图片首次加载不显示的问题的修改<js>
  18. 3.致远OA二次开发Rest用户的介绍
  19. GPS时间转utc时间/unix时间
  20. LW_OOPC学习02

热门文章

  1. 360N6Pro刷机root总结
  2. [附源码]Java计算机毕业设计SSM财务管理系统
  3. 关于科大讯飞语音合成的开发(先写个本地的,简单)
  4. EOS基础全家桶(五)钱包管理
  5. Python学习笔记(九):类和对象
  6. 新零售时代,即拼商城模式如何做?
  7. No SLF4J providers were found.解决方案
  8. XDMA驱动配置及详解
  9. 区块链技术的主要特征有哪些
  10. 计算机操作系统双语教程,计算机操作系统双语教程