select class as a from table_1 where c like %一班%
执行结果:列名c无效,
select class as a from table_1 where class like %一班%
执行正确,(但我不想用这个方法)就是想用别名利用嵌套似乎可以解决,但是如果用嵌套解决的话,语句就没有效率了
执行结果:列名c无效,
select class as a from table_1 where class like %一班%
执行正确,(但我不想用这个方法)就是想用别名利用嵌套似乎可以解决,但是如果用嵌套解决的话,语句就没有效率了
执行正确,(但我不想用这个方法)就是想用别名 在此句执行的时候,别名都还没有生成,怎么利用啊,呵呵,只有这两种办法
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE | ROLLUP}
(7) HAVING <having_condition>
(10) ORDER BY <order_by_list>
上面的数字表明了执行顺序。
你的例子中简化一下即是
(3) SELECT (4) <select_list>
(1) FROM <left_table>
(2) WHERE <where_condition>
即
(3) SELECT (4) <class as a>
(1) FROM <table_1>
(2) WHERE <class like %一班% >
在SQL程序执行时,首先执行1,然后对1的结果应用WHERE条件进行过滤,此时列别名尚未产生,因此不能使用列别名。