1.需求
select查询的时候引用之前计算出来的值2.背景信息SELECT AutoID,(Distance-EndGap) as Length,(Length/Distance) as Percentage
FROM `tb_train_schedule`..................
3.我的问题
我执行如上的代码,则提示出错,主要问题是:(Length/Distance) as Percentage
Unknown column 'Length' in 'field list'
虽知可以:SELECT AutoID,(Distance-EndGap) as Length,(Distance-EndGap/Distance) as Percentage
FROM `tb_train_schedule`..................但是当计算表达式很长的时候,阅读起来则不悦目,因此我想知道像我这样的问题是否有好的解决方案?
4.我的代码
略5.帖尾
小生才学疏浅 ,请高手指教 ,临帖涕零,不知所言 , 谢谢 ~ !

解决方案 »

  1.   

    外面再套一层select length
    from (
    SELECT AutoID,(Distance-EndGap) as Length
    FROM `tb_train_schedule`..................
    )T
      

  2.   

    在MYSQL中没有办法这个从语义上就没办法解决,比如这种select col1 as col1 , col1/col2 as col2, col2/col3 as col3 ...你如何知道   col1/col2 as col2 中   col1是指哪个?
      

  3.   

    像这种sql语句只能采取“静态”解析,其实,你自己完全可以把整个语义都表达出来,长一点没关系,DBMS能理解。
      

  4.   

    长短对MYSQL来说,并无太大影响。 写的时候可以格式化一下。SELECT AutoID,(Distance-EndGap) as Length,
    ((Distance-EndGap)/Distance) as Percentage
    FROM `tb_train_schedule`..................