执行顺序和数据库有关的。
ORACLE是从后往前解析,SQL Server则是从前往后。
如果对这方面比较感兴趣,SQL Server推荐一本书
《Microsoft SQL SERVER 2008技术内幕 T-SQL查询(中文)》,其中有讲逻辑查询处理阶段详解。
(在网上应该容易找到的,不行的话加我qq(知道号))
如果是Oracle的话,可以查一下优化器相关。
首先,请考虑是否的确需要更改表中的列顺序。SQL的核心要点是从数据存储格式获取应用。总应指定检索数据的顺序。在下面的第1条语句中,以col_name1、col_name2、col_name3顺序返回列;在第2条语句中,以col_name1、col_name3、col_name2顺序返回列:MySQL SELECT col_name1, col_name2, col_name3 FROM tbl_namemysql SELECT col_name1, col_name3, col_name2 FROM tbl_name如果决定更改表列的顺序,可执行下述 *** 作:用具有新顺序的列创建新表。执行该语句:mysql INSERT INTO new_table- SELECT columns-in-new-order FROM old_table撤销或重命名old_table。将新表重命名为原始名称:SELECT *十分适合于测试查询。但是,在应用程序中,永远不要依赖SELECT *的使用,不要依赖根据其位置检索列。如果添加、移动或删除了列,所返回的列的顺序和位置不会保持相同。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)