select column1+10 as c1,c1+10 as c2 from table1;
想实现上面的效果,结果在mysql里面报错了,提示找不到c1这个列;

-- 不同的 数据库不一样

一般不支持在select中继续使用别名 或者where语句中使用

如果是在要用 可以尝试是否支持:

select column1+10 as c1,(select c1)+10 as c2 from table1;

但是在orderby groupby 可以使用

---一些解释参考

https://stackoverflow.com/questions/16715504/mysql-define-a-variable-within-select-and-use-it-within-the-same-select/16715618#16715618

https://stackoverflow.com/questions/6081436/how-to-use-alias-as-field-in-mysql

mysql中的SQL语句执行是有一定顺序的,如下:
1. from
2. on
3. join
4. where
5. group by
6. with
7. having
8. select
9. distinct
10. order by
11. limit
一条SQL会经过这11步的,中间的每一步都会生成一张虚拟表,后面的步骤都是在上一张虚拟表中进行筛选与查询的,下面假设,经过了7步也就是经过了having这一步,生成的虚拟表假设为:

id  column1 column2 alias(having后的别名)
1 10 10 aaa
2 20 20 bbb

现在到了SELECT这一步的时候,你的查询字段为 column1+10 as c1, 那么sql解析器在这个虚拟表中可以找到column1这个字段,那么计算和设置别名成功, 现在你要c1+10,它发现这个虚拟表中不存在这个字段,那么就会报错,如果你想这样做:alias as xxx, 那么也不会报错,因为having筛选过后,这个别名字段已经在虚拟表中了,所以其实道理很简单,select的执行顺序是排在第8步的,而select是针对以上几步生成的虚拟表进行操作的,所以你所要使用的字段,如果虚拟表中不存在,那么则会报错,如果楼主的那句SQL硬要执行的话,也只能改成select column1+10 as c1,column1+10+10 as c2 from table1;

最新文章

  1. Django项目流程(摘抄整理)
  2. [NOIP摸你赛]Hzwer的陨石(带权并查集)
  3. Android任务和返回栈完全解析,细数那些你所不知道的细节
  4. C#面向对象面试题集锦
  5. IntelliJ IDEA修改Output输出缓存区大小【应对:too much output to process】
  6. [struts2]struts结合ECharts的用法
  7. 文件夹IsShow字段为空
  8. php的引用
  9. leetcode先刷_Remove Duplicates from Sorted List II
  10. 【linux相识相知】磁盘分区及文件系统管理详解
  11. java解析xml汇总(转自倾城幻影-Java解析xml汇总,链接:http://www.cnblogs.com/jiugehuanying/archive/2012/01/12/2320058.html)
  12. [bzoj1707]tanning分配防晒霜_贪心+排序
  13. 用 Javascript 实现的“Dual listbox”(双向选择器)
  14. 解决PostGIS打开shp文件输入输出模块出现"找不到文件libintl-9.dll"的问题
  15. 定义一个Map集合,key和value不规定类型,任意放入数据,用keySet()和 entrySet()两种方式遍历出Map集合的数据
  16. Netty 线程模型
  17. Docker: docker 启动一个Nginx容器
  18. spring boot thymeleaf 标签未关闭报错
  19. ORA-01078和LRM-00109问题导致ORACLE启动失败解决方法
  20. 简单MVVM教程

热门文章

  1. xpath获取带注释的text
  2. 2-5 R语言基础 factor
  3. Date对象的用法总结
  4. 如何将tensor的内容输出到文本文件
  5. 发行版Linux和麒麟操作系统下netperf 网络性能测试
  6. 蓝桥杯历届试题 危险系数(dfs或者并查集求无向图关于两点的割点个数)
  7. Linux系统扫描技术及安全防范
  8. odoo之可选择多个内容显示问题
  9. 编译最新的SQLite 3.8.4.3为一个DLL
  10. 大数据入门第二十天——scala入门(二)scala基础02