SQL语句中,为什么where子句不能使用列别名,而order by却可以?
2015-08-28 10:42
721 查看
sqlserver(其他数据库类似)查询的执行顺序是: (1)FROM <left_table> <join_type> JOIN <right_table> ON <on_predicate> (2)WHERE <where_predicate> (3)GROUP BY <group_by_specification> 查询 别名开始存在 此处开始才可以使用别名 (4)H***ING <having_predicate> (5)SELECT DISTINCT TOP(<top_specification>) <select_list> (6)ORDER BY <order_by_list> 所以在where执行的时候,别名还不存在,而order by的时候已经存在
相关文章推荐
- oracle contains函数 全文检索
- nginx+tomcat+redis完成session共享
- 经典sql语句
- Oracle EBS PO API po_change_api1_s.update_po修改PO行信息
- Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'name' at r
- linux系统中实现mongodb3.0.5数据库自动备份
- 查看MySQL是否支持InnoDB引擎以及不支持的解决办法
- Redis管道(Pipelining)操作
- Jedis使用总结【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】
- PostgreSQL与中文社区
- MySQL server has gone away(在执行sql的时候,莫名的报错)
- Oracle AWR报告指标全解析(三)
- Oracle AWR报告指标全解析(二)
- Oracle AWR报告指标全解析(一)
- Haproxy+多台MySQL从服务器(Slave) 实现负载均衡
- sql不常用的insert语句
- MySQL存储引擎MyISAM与InnoDB的区别
- sql常用
- Node.js + MongoDB学习
- 20150828 --Oracle的学习笔记